Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/1028976.1028995acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

An efficient parallel heap compaction algorithm

Published: 01 October 2004 Publication History

Abstract

We propose a heap compaction algorithm appropriate for modern computing environments. Our algorithm is targeted at SMP platforms. It demonstrates high scalability when running in parallel but is also extremely efficient when running single-threaded on a uniprocessor. Instead of using the standard forwarding pointer mechanism for updating pointers to moved objects, the algorithm saves information for a pack of objects. It then does a small computation to process this information and determine each object's new location. In addition, using a smart parallel moving strategy, the algorithm achieves (almost) perfect compaction in the lower addresses of the heap, whereas previous algorithms achieved parallelism by compacting within several predetermined segments.
Next, we investigate a method that trades compaction quality for a further reduction in time and space overhead. Finally, we propose a modern version of the two-finger compaction algorithm. This algorithm fails, thus, re-validating traditional wisdom asserting that retaining the order of live objects significantly improves the quality of the compaction.
The parallel compaction algorithm was implemented on the IBM production Java Virtual Machine. We provide measurements demonstrating high efficiency and scalability. Subsequently, this algorithm has been incorporated into the IBM production JVM.

References

[1]
java.lang class system. http://java.sun.com/j2se/1.3/docs/api/java/lang/System.html.
[2]
David F. Bacon, Perry Cheng, and V.T. Rajan. A real-time garbage collecor with low overhead and consistent utilization. In Conference Record of the Thirtieth Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices, New Orleans, LA, January 2003. ACM Press.
[3]
David F. Bacon, Stephen J. Fink, and David Grove. Space- and time-efficient implementation of the java object model. In Proceedings of the 16th European Conference on Object-Oriented Programming, pages 111--132. Springer-Verlag, 2002.
[4]
Ori Ben-Yitzhak, Irit Goft, Elliot Kolodner, Kean Kuiper, and Victor Leikehman. An algorithm for parallel incremental compaction. In David Detlefs, editor, ISMM'02 Proceedings of the Third International Symposium on Memory Management, ACM SIGPLAN Notices, pages 100--105, Berlin, June 2002. ACM Press.
[5]
Sam Borman. Sensible Sanitation - Understanding the IBM Java Garbage Collector (Part 1: Object allocation). http://www.ibm.com/developerworks/ibm/library/i-garbage1.
[6]
Sam Borman. Sensible Sanitation - Understanding the IBM Java Garbage Collector(Part 2: Garbage collection). http://www.ibm.com/developerworks/ibm/library/i-garbage2.
[7]
Christine Flood, Dave Detlefs, Nir Shavit, and Catherine Zhang. Parallel garbage collection for shared memory multiprocessors. In Usenix Java Virtual Machine Research and Technology Symposium (JVM '01), Monterey, CA, April 2001.
[8]
Richard E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996. With a chapter on Distributed Garbage Collection by R. Lins.
[9]
H. B. M. Jonkers. A fast garbage compaction algorithm. Information Processing Letters, 9(1):25--30, July 1979.
[10]
Bernard Lang and Francis Dupont. Incremental incrementally compacting garbage collection. In SIGPLAN'87 Symposium on Interpreters and Interpretive Techniques, volume 22(7) of ACM SIGPLAN Notices, pages 253--263. ACM Press, 1987.
[11]
Martin Larose and Marc Feeley. A compacting incremental collector and its performance in a production quality compiler. In Richard Jones, editor, ISMM'98 Proceedings of the First International Symposium on Memory Management, volume 34(3) of ACM SIGPLAN Notices, pages 1--9, Vancouver, October 1998. ACM Press.
[12]
F. Lockwood Morris. A time- and space-efficient garbage compaction algorithm. Communications of the ACM, 21(8):662--5, 1978.
[13]
WebSphere Software platform. Ibm software products. http://www.ibm.com/software/info1/websphere/index.jsp.
[14]
SPECjbb2000 Java Business Benchmark. Standard Performance Evaluation Corporation (SPEC), Fairfax, VA, 1998. Available at http://www.spec.org/osg/jbb2000/.
[15]
SPECjvm98 Benchmarks. Standard Performance Evaluation Corporation (SPEC), Fairfax, VA, 1998. Available at http://www.spec.org/osg/jvm98/.
[16]
Trade3 Web Application Server Benchmark. IBM Software. Available at http://www.ibm.com/software/webservers/appserv/-benchmark3.html.

Cited By

View all
  • (2024)Mutator-Driven Object Placement using Load BarriersProceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3679007.3685060(14-27)Online publication date: 13-Sep-2024
  • (2024)Garbage Collection for Mostly Serialized HeapsProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665512(1-14)Online publication date: 20-Jun-2024
  • (2022)Compressed Forwarding Tables ReconsideredProceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3546928(45-63)Online publication date: 14-Sep-2022
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
OOPSLA '04: Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
October 2004
462 pages
ISBN:1581138318
DOI:10.1145/1028976
  • cover image ACM SIGPLAN Notices
    ACM SIGPLAN Notices  Volume 39, Issue 10
    OOPSLA '04
    October 2004
    448 pages
    ISSN:0362-1340
    EISSN:1558-1160
    DOI:10.1145/1035292
    Issue’s Table of Contents
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]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 October 2004

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. JVM
  2. compaction
  3. garbage collection
  4. java
  5. parallel compaction
  6. parallel garbage collection

Qualifiers

  • Article

Conference

OOPSLA04

Acceptance Rates

Overall Acceptance Rate 268 of 1,244 submissions, 22%

Upcoming Conference

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)26
  • Downloads (Last 6 weeks)0
Reflects downloads up to 09 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Mutator-Driven Object Placement using Load BarriersProceedings of the 21st ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3679007.3685060(14-27)Online publication date: 13-Sep-2024
  • (2024)Garbage Collection for Mostly Serialized HeapsProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665512(1-14)Online publication date: 20-Jun-2024
  • (2022)Compressed Forwarding Tables ReconsideredProceedings of the 19th International Conference on Managed Programming Languages and Runtimes10.1145/3546918.3546928(45-63)Online publication date: 14-Sep-2022
  • (2019)Massively parallel GPU memory compactionProceedings of the 2019 ACM SIGPLAN International Symposium on Memory Management10.1145/3315573.3329979(14-26)Online publication date: 23-Jun-2019
  • (2017)Cold object identification in the Java virtual machineSoftware—Practice & Experience10.1002/spe.239647:1(79-95)Online publication date: 1-Jan-2017
  • (2016)Performance Analysis and Optimization of Full Garbage Collection in Memory-hungry EnvironmentsACM SIGPLAN Notices10.1145/3007611.289225151:7(123-130)Online publication date: 25-Mar-2016
  • (2016)Performance Analysis and Optimization of Full Garbage Collection in Memory-hungry EnvironmentsProceedings of the12th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments10.1145/2892242.2892251(123-130)Online publication date: 25-Mar-2016
  • (2016)Inter-JVM SharingSoftware—Practice & Experience10.1002/spe.237946:9(1285-1296)Online publication date: 1-Sep-2016
  • (2014)An Improvement to Sliding Garbage CollectionProceedings of ILC 2014 on 8th International Lisp Conference10.1145/2635648.2635655(97-102)Online publication date: 14-Aug-2014
  • (2013)Adaptive scanning reduces sweep time for the Lisp2 mark-compact garbage collectorACM SIGPLAN Notices10.1145/2555670.246648048:11(15-26)Online publication date: 20-Jun-2013
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media