ANU Computer Science Technical Reports
TR-CS-03-02
Stephen M Blackburn, Perry Cheng, and Kathryn S McKinley.
A garbage collection design and bakeoff in JMTk: An efficient
extensible Java memory management toolkit.
September 2003.
[POSTSCRIPT (456094 bytes)] [PDF (258720 bytes)] [EPrints archive]
Abstract: In this paper, we describe the design,
implementation, and evaluation of a new garbage collection framework called
the Java Memory Management Toolkit (JMTk). The goals of JMTk are to provide
an efficient, composable, extensible, and portable toolkit for quickly
building and evaluating new and existing garbage collection algorithms. Our
design clearly demarcates the external interface between the collector and
the compiler for portability. For extensibility, JMTk provides a selection of
allocators, garbage identification, collection, pointer tracking, and other
mechanisms that are efficient and that a wide variety garbage collection
algorithms can compose and share. For instance, our mark-sweep and reference
counting collectors share the free list implementation. We perform a
comprehensive and detailed study of collectors including copying, mark-sweep,
reference counting, copying generational, and hybrid generational collectors
using JMTk in Jikes RVM on a uniprocessor. We find that the performance
of collectors in JMTk is comparable to the highly tuned original Jikes
collectors. In a study of full heap and generational collectors, we confirm
the significant benefits of generational collectors on a wide variety of heap
sizes, and reveal that on very small heaps, collection time is enormous.
These experiments add other new insights, such as firmly establishing that
for a variety of generational collectors, a variable-size nursery which is
allowed to grow to fill all the space not in use by the older generation
performs better than a fixed-size nursery. We thus show the utility of
extensive collector comparisons and establish the benefits of our design.
Technical Reports <Technical-DOT-Reports-AT-cs-DOT-anu.edu.au>
Last modified: Tue May 31 12:56:01 EST 2011