Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Beltway: getting around garbage collection gridlock

Published: 17 May 2002 Publication History

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.

References

[1]
Bowen Alpern, C. R. Attanasio, Anthony Cocchi, Derek Lieber, Stephen Smith, Ton Ngo, John J. Barton, Susan Flynn Hummel, Janice C. Sheperd, and Mark Mergen. Implementing Jalapeño in Java. In Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications, OOPSLA '99, volume 34(10) of ACM SIGPLAN Notices, pages 314--324, Denver, Colorado, USA, October 1999. ACM Press]]
[2]
Bowen Alpern, Dick Attanasio, John J. Barton, M. G. Burke, P. Cheng, J.-D. Choi, Anthony Cocchi, Stephen J. Fink, David Grove, Michael Hind, Susan Flynn Hummel, D. Lieber, V. Litvinov, Mark Mergen, Ton Ngo, J. R. Russell, Vivek Sarkar, Manuel J. Serrano, Janice Shepherd, S. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño virtual machine. IBM System Journal, 39(1), February 2000]]
[3]
Andrew W. Appel. Simple generational garbage collection and fast allocation. Software Practice and Experience, 19(2):171--183, 1989]]
[4]
Andrew W. Appel, John R. Ellis, and Kai Li. Real-time concurrent collection on stock multiprocessors. ACM SIGPLAN Notices, 23(7):11--20, 1988]]
[5]
David A. Barrett and Benjamin Zorn. Garbage collection using a dynamic threatening boundary. Computer Science Technical Report CU-CS-659-93, University of Colorado, July 1993]]
[6]
Peter B. Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. PhD thesis, MIT Laboratory for Computer Science, May 1977. Technical report MIT/LCS/TR--178]]
[7]
Stephen~M. Blackburn and Kathryn S. McKinley. In or out? Putting write barriers in their place. In Proceedings of the Third International Symposium on Memory Management, ISMM '02, volume 37 of ACM SIGPLAN Notices, Berlin, Germany, June 2002. ACM Press]]
[8]
Stephen M. Blackburn, Sharad Singhai, Matthew Hertz, Kathryn S. McKinley, and J. Eliot B. Moss. Pretenuring for Java. In Proceedings of the 2001 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA 2001, volume 36(11) of ACM SIGPLAN Notices, pages 342--352, Tampa, Florida, USA, November 2001. ACM Press]]
[9]
Hans-Juergen Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. ACM SIGPLAN Notices, 26(6):157--164, 1991]]
[10]
Tim Brecht, Eshrat Arjomandi, Chang Li, and Hang Pham. Controlling garbage collection and heap growth to reduce the execution time of Java applications. In Proceedings of the 2001 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, OOPSLA 2001, volume 36(11) of ACM SIGPLAN Notices, Tampa, Florida, USA, November 2001. ACM Press]]
[11]
Dante Cannarozzi, Michael Plezbert, and Ron Cytron. Contaminated garbage collection. In Proceedings of the 2000 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2001, volume 35(5) of ACM SIGPLAN Notices, Vancouver, Canada, May 2000. ACM Press]]
[12]
C. J. Cheney. A non-recursive list compacting algorithm. Communications of the ACM, 13(11):677--8, November 1970]]
[13]
Perry Cheng and Guy Belloch. A parallel, real-time garbage collector. In Proceedings of the 2001 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2001, volume 36(5) of ACM SIGPLAN Notices, pages 125--136, Snowbird, Utah, USA, May 2001. ACM Press]]
[14]
Perry Cheng, Robert Harper, and Peter Lee. Generational stack collection and profile-driven pretenuring. In Proceedings of the 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '98, volume 34(5) of ACM SIGPLAN Notices, Montreal, Canada, May 1998. ACM Press]]
[15]
William D. Clinger and Lars T. Hansen. Generational garbage collection and the Radioactive Decay model. In Proceedings of the 1997 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI '97, volume 32(5) of ACM SIGPLAN Notices, pages 97--108, Las Vegas, Nevada, USA, May 1997. ACM Press]]
[16]
Robert Courts. Improving locality of reference in a garbage-collecting memory management-system. Communications of the ACM, 31(9):1128--1138, 1988]]
[17]
Sylvia Dieckman and Urs Hölzle. A study of the allocation behaviour of the SPECjvm98 Java benchmarks. In Erik Jul, editor, Proceedings of the 12th European Conference on Object-Oriented Programming, ECOOP'98, volume 1445 of Lecture Notes in Computer Science, pages 92--115, Brussels, Belgium, 1998. Springer-Verlag]]
[18]
David Gay and Alex Aiken. Memory management with explicit regions. In Proceedings of the 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'98, volume 33(5) of ACM SIGPLAN Notices, pages 313--323, Montreal, Canada, May 1998. ACM Press]]
[19]
Lars Thomas Hansen. Older-first garbage collection in practice. PhD thesis, North-eastern University, November 2000]]
[20]
Barry Hayes. Using key object opportunism to collect old objects. In Andreas Paepcke, editor, Proceedings of the Sixth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA'91, volume 26(11) of ACM SIGPLAN Notices, pages 33--46, Phoenix, Arizona, USA, October 1991. ACM Press]]
[21]
Michael Hicks, Luke Hornof, Jonathan T. Moore, and Scott Nettles. A study of Large Object Spaces. In Richard Jones, editor, Proceedings of the First International Symposium on Memory Management, ISMM '98, volume 34(3) of ACM SIGPLAN Notices, pages 138--145, Vancouver, Canada, March 1999. ACM Press]]
[22]
Urs Hölzle and David Ungar. A third-generation Self implementation: Reconciling responsiveness with performance. In Proceedings of the Ninth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA'94, volume 29(10) of ACM SIGPLAN Notices, pages 229--243, Portland, Oregon, USA, October 1994. ACM Press]]
[23]
Antony L. Hosking, J. Eliot B. Moss, and Darko Stefanović. A comparative performance evaluation of write barrier implementations. In Andreas Paepcke, editor, Proceedings of the Seventh Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, OOPSLA'92, volume 27(10) of ACM SIGPLAN Notices, pages 92--109, Vancouver, Canada, October 1992. ACM Press]]
[24]
Richard L. Hudson and J. Eliot B. Moss. Incremental garbage collection for mature objects. In Yves Bekkers and Jacques Cohen, editors, Proceedings of the First International Workshop on Memory Management, IWMM'92, volume 637 of Lecture Notes in Computer Science, St. Malo, France, September 1992. Springer-Verlag]]
[25]
Richard E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996. With a chapter on Distributed Garbage Collection by R. Lins]]
[26]
David A. Moon. Garbage collection in a large LISP system. In Guy L. Steele, editor, Proceedings of the 1984 ACM Conference on LISP and Functional Programming, Austin, Texas, USA, August 1984. ACM Press]]
[27]
John H. Reppy. A high-performance garbage collector for Standard ML. Technical memorandum, AT&T Bell Laboratories, Murray Hill, NJ, December 1993]]
[28]
Standard Performance Evaluation Corporation. SPECjvm98 Documentation, release 1.03 edition, March 1999]]
[29]
Standard Performance Evaluation Corporation. SPECjbb2000 (Java Business Benchmark) Documentation, release 1.01 edition, 2001]]
[30]
Bjarne Steensgaard. Thread-specific heaps for multi-threaded programs. In Antony~L. Hosking, editor, Proceedings of the Second International Symposium on Memory Management, ISMM 2000, volume 36(1) of ACM SIGPLAN Notices, Minneapolis, Minnesota, USA, January 2001. ACM Press]]
[31]
Darko Stefanović. Properties of Age-Based Automatic Memory Reclamation Algorithms. PhD thesis, University of Massachusetts, 1999]]
[32]
Darko Stefanović, Kathryn S. McKinley, and J. Eliot B. Moss. Age-based garbage collection. In Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications, OOPSLA'99, volume 34(10) of ACM SIGPLAN Notices, pages 370--381, Denver, Colorado, USA, October 1999. ACM Press]]
[33]
Mads Tofte and Jean-Pierre Talpin. Region-based memory management. Information and Computation, February 1997]]
[34]
David M. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. ACM SIGPLAN Notices, 19(5):157--167, April 1984. Also published as ACM Software Engineering Notes 9, 3 (May 1984) --- Proceedings of the ACM/SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, 157--167, April 1984]]
[35]
David M. Ungar and Frank Jackson. An adaptive tenuring policy for generation scavengers. ACM Transactions on Programming Languages and Systems, 14(1):1--27, 1992]]
[36]
Derek White and Alex Garthwaite. The GC interface in the EVM. Technical Report SML TR--98--67, Sun Microsystems Laboratories, December 1998]]
[37]
Paul R. Wilson. A simple bucket-brigade advancement mechanism for generation-based garbage collection. ACM SIGPLAN Notices, 24(5):38--46, May 1989]]
[38]
Paul R. Wilson. Garbage collection and memory hierarchy. In Yves Bekkers and Jacques Cohen, editors, Proceedings of International Workshop on Memory Management, volume 637 of Lecture Notes in Computer Science, St Malo, France, September 1992. Springer-Verlag]]
[39]
Paul R. Wilson and Thomas G. Moher. A card-marking scheme for controlling intergenerational references in generation-based garbage collection on stock hardware. ACM SIGPLAN Notices, 24(5):87--92, 1989]]
[40]
Benjamin G. Zorn. Comparative Performance Evaluation of Garbage Collection Algorithms. PhD thesis, University of California at Berkeley, March 1989. Technical Report UCB/CSD 89/544]]

Cited By

View all
  • (2016)Rethinking a heap hierarchy as a cache hierarchy: a higher-order theory of memory demand (HOTM)ACM SIGPLAN Notices10.1145/3241624.292670851:11(111-121)Online publication date: 14-Jun-2016
  • (2016)Rethinking a heap hierarchy as a cache hierarchy: a higher-order theory of memory demand (HOTM)Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management10.1145/2926697.2926708(111-121)Online publication date: 14-Jun-2016
  • (2016)Trace Files for Automatic Memory Management Systems2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER)10.1109/SANER.2016.118(9-12)Online publication date: Mar-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 37, Issue 5
May 2002
326 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/543552
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI '02: Proceedings of the ACM SIGPLAN 2002 conference on Programming language design and implementation
    June 2002
    338 pages
    ISBN:1581134630
    DOI:10.1145/512529
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 17 May 2002
Published in SIGPLAN Volume 37, Issue 5

Check for updates

Author Tags

  1. Java
  2. beltway
  3. copying collection
  4. generational collection

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)4
  • Downloads (Last 6 weeks)1
Reflects downloads up to 14 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2016)Rethinking a heap hierarchy as a cache hierarchy: a higher-order theory of memory demand (HOTM)ACM SIGPLAN Notices10.1145/3241624.292670851:11(111-121)Online publication date: 14-Jun-2016
  • (2016)Rethinking a heap hierarchy as a cache hierarchy: a higher-order theory of memory demand (HOTM)Proceedings of the 2016 ACM SIGPLAN International Symposium on Memory Management10.1145/2926697.2926708(111-121)Online publication date: 14-Jun-2016
  • (2016)Trace Files for Automatic Memory Management Systems2016 IEEE 23rd International Conference on Software Analysis, Evolution, and Reengineering (SANER)10.1109/SANER.2016.118(9-12)Online publication date: Mar-2016
  • (2008)Garbage collectionScience of Computer Programming10.1016/j.scico.2007.07.00870:2-3(89-110)Online publication date: 1-Feb-2008
  • (2008)Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and SystemsObject-Oriented Technology. ECOOP 2007 Workshop Reader10.1007/978-3-540-78195-0_6(50-64)Online publication date: 2008
  • (2007)Application-specific garbage collectionJournal of Systems and Software10.1016/j.jss.2006.12.56680:7(1037-1056)Online publication date: 1-Jul-2007
  • (2007)Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and SystemsObject-Oriented Technology. ECOOP 2006 Workshop Reader10.1007/978-3-540-71774-4_1(1-14)Online publication date: 2007
  • (2006)Relative factors in performance analysis of Java virtual machinesProceedings of the 2nd international conference on Virtual execution environments10.1145/1134760.1134776(111-121)Online publication date: 14-Jun-2006
  • (2006)Five perspectives on modern memory managementScience of Computer Programming10.1016/j.scico.2006.05.00362:2(95-97)Online publication date: 1-Oct-2006
  • (2006)Linear combinations of radioactive decay models for generational garbage collectionScience of Computer Programming10.1016/j.scico.2006.02.00562:2(184-203)Online publication date: 1-Oct-2006
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media