Generational Real-Time Garbage Collection

(this researcher seems to me (an ignorant neophyte admittedly), to have quite a bit of interesting work on GC, among other interesting things.)

Generational Real-Time Garbage Collection

Abstract. While real-time garbage collection is now available in pro- duction virtual machines, the lack of generational capability means ap- plications with high allocation rates are subject to reduced throughput and high space overheads.

Since frequent allocation is often correlated with a high-level, object- oriented style of programming, this can force builders of real-time sys- tems to compromise on software engineering.

We have developed a fully incremental, real-time generational col- lector based on a tri-partite nursery, which partitions the nursery into regions that are being allocated, collected, and promoted. Nursery col- lections are incremental, and can occur within any phase of a mature collection.

We present the design, mathematical model, and implementation of our collector in IBM’s production Real-time Java virtual machine, and show both analytically and experimentally that the collector achieves real-time bounds comparable to a non-generational Metronome-style col- lector, while cutting memory consumption and total execution times by as much as 44% and 24% respectively.

p.s. i'm less interested in supporting OO everywhere than i am in having kick-ass GCs, i assume that using something more FP with a GC like this would be never less performant anyway.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

What is the point?

What is the point of posting all the papers about GC from bacon?

Bacon is one of THE GC specialist around... He has very good ideas. He explored ref count and anything else and implements it and brings it into production (IMB Java JDK and more). And now what?

Question: I am a lingering diletante in developing GC algos... and read everything of Bacon too... Is he really that good?


fine questions

From what i've heard from people who know better than myself (not hard), yes, he's the real deal -- presumably along with others in the field.

This particular paper was more directly LtUable in my mind because it is trying to make OOP be more usable everywhere. That's a direct issue for PLT people I should think.

(Of course personally I'm usually trying to get the heck away from OO even though my fingers are all muscle-memory-brainwashed into doing things in an OO way most of the time. curses!)

I think the state of the art

I think the state of the art is the Zing GC. Basically they use a read barrier to do single pass concurrent marking (no "mostly concurrent GC" with a stop the world pause to finish up marking), and use the same read barrier to do concurrent compaction. The main novelty is that the read barrier is implemented using the virtual memory system, so it does not actually incur any overhead in the common case.