Beltway: Getting around garbage collection gridlock
Stephen M. Blackburn, Richard Jones, Kathryn S. McKinley, and J. Eliot B.
Moss
In Laurie J. Hendren, editor,
Proceedings of PLDI'02 Programming Language
Design and Implementation, pages 153-164, Berlin, June 2002. ACM Press.
Abstract
We present the design and implementation of a new garbage collection
framework that significantly generalizes existing copying
collectors. The
Beltway framework exploits and separates
object age and incrementality. It groups objects in one or more
increments on queues called
belts, collects belts
independently, and collects increments on a belt in
first-in-first-out order. We show that Beltway configurations,
selected by command line options, act and perform the same as
semi-space, generational, and older-first collectors, and encompass
all previous copying collectors of which we are aware.
The increasing reliance on garbage collected languages such as Java
requires that the collector perform well. We show that the
generality of Beltway enables us to design and implement new
collectors that are robust to variations in heap size and improve
total execution time over the best generational copying collectors
of which we are aware by up to 40%, and on average by 5 to 10%,
for small to moderate heap sizes. New garbage collection algorithms
are rare, and yet we define not just one, but a new family of
collectors that subsumes previous work. This generality enables us
to explore a larger design space and build better collectors.
Download publication
451 kbytes
(PostScript)
Bibtex Record
@inproceedings{1363,
author = {Stephen M. Blackburn and Richard Jones and Kathryn S. McKinley and J. Eliot B. Moss},
title = {Beltway: Getting Around Garbage Collection Gridlock},
month = {June},
year = {2002},
pages = {153-164},
keywords = {Beltway, copying garbage collection, generational garbage collection, Java},
note = {},
doi = {},
url = {http://www.cs.kent.ac.uk/pubs/2002/1363},
publication_type = {inproceedings},
submission_id = {12046_1019205282},
booktitle = {Proceedings of PLDI'02 Programming Language Design and Implementation},
editor = {Laurie J. Hendren},
address = {Berlin},
publisher = {ACM Press},
refereed = {Yes},
ISBN = {1-58113-463-0},
}