skip to main content
10.1145/949305.949328acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
Article

Mostly concurrent garbage collection revisited

Published:26 October 2003Publication History

ABSTRACT

The mostly concurrent garbage collection was presented in the seminal paper of Boehm et al. With the deployment of Java as a portable, secure and concurrent programming language, the mostly concurrent garbage collector turned out to be an excellent solution for Java's garbage collection task. The use of this collector is reported for several modern production Java Virtual Machines and it has been investigated further in academia.In this paper, we present a modification of the mostly concurrent collector, which improves the throughput, the memory footprint, and the cache behavior of the collector without foiling the other good qualities (such as short pauses and high scalability). We implemented our solution on the IBM production JVM and obtained a performance improvement of up to 26.7%, a reduction in the heap consumption by up to 13.4%, and no substantial change in the (short) pause times. The modified algorithm was subsequently incorporated into the IBM production JVM.

References

  1. Java development kit version 1.2, summary of new features (performance enhancements). http://java.sun.com/products/jdk/1.2/docs/relnotes/features.html.Google ScholarGoogle Scholar
  2. AndrewW. Appel, John~R. Ellis, and Kai Li. Real-time concurrent collection on stock multiprocessors. ACM SIGPLAN Notices, 23(7):11--20, 1988. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Hezi Azatchi, Yossi Levanoni, Harel Paz, and Erez Petrank. An on-the-fly mark and sweep garbage collector based on sliding views. In 18th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA'03), Aneheim, CA, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Hezi Azatchi and Erez Petrank. Integrating generations with advanced reference counting garbage collectors. In Proceedings of the Compiler Construction: 12th International Conference on Compiler Construction, CC 2003, volume 2622 of Lecture Notes in Computer Science, pages 185 -- 199, Warsaw, Poland, May 2003. Springer-Verlag Heidelberg. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. David Bacon, Dick Attanasio, Han Lee, and Stephen Smith. Java without the coffee breaks: A nonintrusive multiprocessor garbage collector. In Proceedings of SIGPLAN 2001 Conference on Programming Languages Design and Implementation, ACM SIGPLAN Notices, Snowbird, Utah, June 2001. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Henry G. Baker. List processing in real-time on a serial computer. Communications of the ACM, 21(4):280--94, 1978. Also AI Laboratory Working Paper 139, 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Mordechai Ben-Ari. On-the-fly garbage collection: New algorithms inspired by program proofs. In M. Nielsen and E. M. Schmidt, editors, Automata, languages and programming. Ninth colloquium, pages 14--22, Aarhus, Denmark, July 12--16 1982. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Mordechai Ben-Ari. Algorithms for on-the-fly garbage collection. ACM Transactions on Programming Languages and Systems, 6(3):333--344, July 1984. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Hans-Juergen Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. SIGPLAN PLDI, 26(6):157--164, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Sam Borman. Sensible sanitation - understanding the ibm java garbage collector (part 1: Object allocation). http://www.ibm.com/developerworks/ibm/library/i-garbage1.Google ScholarGoogle Scholar
  11. Edsgar W. Dijkstra, Leslie Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. In Lecture Notes in Computer Science, No. 46. Springer-Verlag, New York, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Edsgar W. Dijkstra, Leslie Lamport, A. J. Martin, C. S. Scholten, and E. F. M. Steffens. On-the-fly garbage collection: An exercise in cooperation. Communications of the ACM, 21(11):965--975, November 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Damien Doligez and Georges Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In Conference Record of the Twenty-first Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices. ACM Press, January 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Damien Doligez and Xavier Leroy. A concurrent generational garbage collector for a multi-threaded implementation of ML. In Conference Record of the Twentieth Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices, pages 113--123. ACM Press, January 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. Tamar Domani, Elliot Kolodner, and Erez Petrank. A generational on-the-fly garbage collector for Java. In Proceedings of SIGPLAN 2000 Conference on Programming Languages Design and Implementation, ACM SIGPLAN Notices, Vancouver, June 2000. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Tamar Domani, Elliot K. Kolodner, Ethan Lewis, Elliot E. Salant, Katherine Barabash, Itai Lahan, Erez Petrank, Igor Yanover, and Yossi Levanoni. Implementing an on-the-fly garbage collector for Java. In Hosking {19}. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Toshio Endo, Kenjiro Taura, and Akinori Yonezawa. Reducing pause time of conservative collectors. In David Detlefs, editor, ISMM'02 Proceedings of the Third International Symposium on Memory Management, ACM SIGPLAN Notices, pages 12--24, Berlin, June 2002. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. David Gries. An exercise in proving parallel programs correct. Communications of the ACM, 20(12):921--930, December 1977. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. Tony Hosking, editor. ISMM 2000 Proceedings of the Second International Symposium on Memory Management, volume 36(1) of ACM SIGPLAN Notices, Minneapolis, MN, October 2000. ACM Press.Google ScholarGoogle Scholar
  20. Richard L. Hudson and J. Eliot B. Moss. Sapphire: Copying GC without stopping the world. In Joint ACM Java Grande --- ISCOPE 2001 Conference, Stanford University, CA, June 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Richard E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996. With a chapter on Distributed Garbage Collection by R. Lins. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. BEA WebLogic JRockit. The server jvm. http://www.bea.com/products/weblogic/server/jrockit_wp_052303_final.pdf.Google ScholarGoogle Scholar
  23. H. T. Kung and S. W. Song. An efficient parallel garbage collection system and its correctness proof. In IEEE Symposium on Foundations of Computer Science, pages 120--131. IEEE Press, 1977.Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Leslie Lamport. Garbage collection with multiple processes: an exercise in parallelism. In Proceedings of the 1976 International Conference on Parallel Processing, pages 50--54, 1976.Google ScholarGoogle Scholar
  25. Yossi Levanoni and Erez Petrank. An on-the-fly reference counting garbage collector for Java. In OOPSLA'01 ACM Conference on Object-Oriented Systems, Languages and Applications, volume 36(10) of ACM SIGPLAN Notices, Tampa, FL, October 2001. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. David A. Moon. Garbage collection in a large LISP system. In Guy L. Steele, editor, Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, pages 235--245, Austin, TX, August 1984. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. Yoav Ossia, Ori Ben-Yitzhak, Irit Goft, Elliot K. Kolodner, Victor Leikehman, and Avi Owshanko. A parallel, incremental and concurrent GC for servers. In Proceedings of SIGPLAN 2002 Conference on Programming Languages Design and Implementation, ACM SIGPLAN Notices, pages 129--140, Berlin, June 2002. ACM Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. David Patterson and John Hennessy. Computer architecture: a quantitative approach. Morgan Kaufman, 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Tony Printezis and David Detlefs. A generational mostly-concurrent garbage collector. In Hosking {19}. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Intel Software Development Products. Vtune performance analyzers. http://www.intel.com/software/products/vtune.Google ScholarGoogle Scholar
  31. Patrick Sobalvarro. A lifetime-based garbage collector for Lisp systems on general-purpose computers. Technical Report AITR-1417, MIT AI Lab, February 1988. Bachelor of Science thesis. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. SPECjbb2000 Java Business Benchmark. Standard Performance Evaluation Corporation (SPEC), Fairfax, VA, 1998. Available at http://www.spec.org/osg/jbb2000/.Google ScholarGoogle Scholar
  33. SPECjvm98 Benchmarks. Standard Performance Evaluation Corporation (SPEC), Fairfax, VA, 1998. Available at http://www.spec.org/osg/jvm98/.Google ScholarGoogle Scholar
  34. Guy L. Steele. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495--508, September 1975. Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. Guy L. Steele. Corrigendum: Multiprocessing compactifying garbage collection. Communications of the ACM, 19(6):354, June 1976.Google ScholarGoogle Scholar

Index Terms

  1. Mostly concurrent garbage collection revisited

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Conferences
    OOPSLA '03: Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
    October 2003
    430 pages
    ISBN:1581137125
    DOI:10.1145/949305
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 38, Issue 11
      Special Issue: Proceedings of the OOPSLA '03 conference
      November 2003
      417 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/949343
      Issue’s Table of Contents

    Copyright © 2003 ACM

    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: 26 October 2003

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • Article

    Acceptance Rates

    OOPSLA '03 Paper Acceptance Rate26of147submissions,18%Overall Acceptance Rate268of1,244submissions,22%

    Upcoming Conference

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader