-
Notifications
You must be signed in to change notification settings - Fork 10
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding stock gc trigger and set it as default #222
Conversation
julia-version |
if alloc_mem != 0 && alloc_time != 0 && gc_mem != 0 && gc_time != 0 { | ||
let alloc_rate = alloc_mem as f64 / alloc_time as f64; | ||
let gc_rate = gc_mem as f64 / gc_time as f64; | ||
target_allocs = (heap_size as f64 * alloc_rate / gc_rate).sqrt() * TUNING_FACTOR; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The computation looks like mem balancer. If this is Julia's current heuristics, I assume Julia is using a variant of mem balancer (e.g. the thrashing detection).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's right. I think it does, and that's what I wanted to say in the MMTk meeting.
However, looking at TUNING_FACTOR
from Julia, it looks much different than what mmtk-core implements? But again, the equation they use seems different...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We did not 'tune' for mmtk's mem balancer. They multiply with the TUNING_FACTOR
, we divide by the TUNING_FACTOR
. But set this aside, it looks like that they are using a variant of mem balancer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, our heuristics started with stock membalancer and then we changed the quite a bit, notably by allowing it to scale a lot faster when small
… heap collections)
8bfb290
to
c5af30d
Compare
FYI, here is some rough data (in seconds) about time spent doing some of the steps for building Julia and running
Not sure why there's a huge discrepancy in the |
This PR sets MMTk to use the stock GC heuristics for heap resizing by default. It also updates the `mmtk-julia` version to incorporate the changes that support the new gc triggering heuristics (see mmtk/mmtk-julia#222).
This PR implements Julia's Stock GC heuristics for triggering GC and resizing the heap. It also updates
mmtk-core
to the latest version.