Generational, mostly-concurrent garbage collection

David Detlefs
Sun Labs

Thursday, November 30, Volen 101, 2:10-3:10 pm. (Refreshments at 2:00pm)

This paper reports our experiences with a mostly-concurrent incremental garbage collector, implemented in the context of a high performance virtual machine for the Java\tm\ programming language. The garbage collector is based on the ``mostly parallel'' collection algorithm of Boehm \etal\ and can be used as the old generation of a generational memory system. It overloads efficient write-barrier code already generated to support generational garbage collection to also identify objects that were modified during concurrent marking. These objects must be rescanned to ensure that the concurrent marking phase marks all live objects. This algorithm minimises maximum garbage collection pause times, while having only a small impact on the average garbage collection pause time and overall execution time. We support our claims with experimental results, for both a synthetic benchmark and real programs.

Host:Liuba Shrira