I created the following issue to track the progress on this: https://github.com/JuliaLang/julia/issues/8543
On Tuesday, September 30, 2014 3:29:01 PM UTC+2, Spencer Russell wrote: > > I'm looking forward to some sort of flag or option to turn on the > incremental GC, and trying to understand a bit more about the design space. > My naive thought process goes something like this: > > 1. The total time to collect garbage probably grows with number of > objects and total size to be freed (though maybe size doesn't matter much > here?) > 2. An incremental GC will collect until it runs out of time, then hand > control back to the application until it's time to run again > 3. It seems like there's a rate of garbage generation where you're > building up garbage faster than the GC can collect it without missing its > deadline > 4. It seems like if you stay below this rate you can consider your > maximum pause time to be bounded and memory won't be leaking. We hold > hands > and sing songs. > 5. So the issue is what to do when you're above that rate. Either you: > 1. make sure memory consumption doesn't grow indefinitely by having > some heuristic for when the GC decides to give up on the deadline, OR > 2. make sure the GC never violates its deadline and run the risk of > running out of memory > > Are there other options besides those two? > > I would definitely welcome an actual hard-realtime bounded-pause-time GC, > but it also seems valuable (and possibly more feasible) to have a GC where > the pause time is bounded with caveats and more careful programming. I'm > not sure whether this qualifies as *hard *realtime, though it seems like > it might if you can make those guarantees about your application code. > > It's also worth mentioning for other folks interested in latency that that > JIT compilation is a killer as well, so you need to guarantee that you're > pre-compiled all the possible methods that might get dispatched to. > > > peace, > s > > On Mon, Sep 29, 2014 at 4:25 PM, Stefan Karpinski <[email protected] > <javascript:>> wrote: > >> On Mon, Sep 29, 2014 at 4:21 PM, Uwe Fechner <[email protected] >> <javascript:>> wrote: >> >>> Jeff Bezanson suggested in the following discussion ( >>> https://github.com/JuliaLang/julia/pull/5227 ): >>> > It would be great to have the option to build with a low-pause GC for >>> users who might want that. >>> >>> This is exactly what I am looking for: To have two different garbage >>> collectors for Julia, a fast collector for non-real-time applications and a >>> low-latency GC >>> for real-time applications. Uwe >>> >> >> Yeah, that would be great. >> > >
