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.
- 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 Scholar
- AndrewW. Appel, John~R. Ellis, and Kai Li. Real-time concurrent collection on stock multiprocessors. ACM SIGPLAN Notices, 23(7):11--20, 1988. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Mordechai Ben-Ari. Algorithms for on-the-fly garbage collection. ACM Transactions on Programming Languages and Systems, 6(3):333--344, July 1984. Google ScholarDigital Library
- Hans-Juergen Boehm, Alan J. Demers, and Scott Shenker. Mostly parallel garbage collection. SIGPLAN PLDI, 26(6):157--164, 1991. Google ScholarDigital Library
- Sam Borman. Sensible sanitation - understanding the ibm java garbage collector (part 1: Object allocation). http://www.ibm.com/developerworks/ibm/library/i-garbage1.Google Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- David Gries. An exercise in proving parallel programs correct. Communications of the ACM, 20(12):921--930, December 1977. Google ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- BEA WebLogic JRockit. The server jvm. http://www.bea.com/products/weblogic/server/jrockit_wp_052303_final.pdf.Google Scholar
- 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 ScholarDigital Library
- 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 Scholar
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- David Patterson and John Hennessy. Computer architecture: a quantitative approach. Morgan Kaufman, 1990. Google ScholarDigital Library
- Tony Printezis and David Detlefs. A generational mostly-concurrent garbage collector. In Hosking {19}. Google ScholarDigital Library
- Intel Software Development Products. Vtune performance analyzers. http://www.intel.com/software/products/vtune.Google Scholar
- 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 ScholarDigital Library
- SPECjbb2000 Java Business Benchmark. Standard Performance Evaluation Corporation (SPEC), Fairfax, VA, 1998. Available at http://www.spec.org/osg/jbb2000/.Google Scholar
- SPECjvm98 Benchmarks. Standard Performance Evaluation Corporation (SPEC), Fairfax, VA, 1998. Available at http://www.spec.org/osg/jvm98/.Google Scholar
- Guy L. Steele. Multiprocessing compactifying garbage collection. Communications of the ACM, 18(9):495--508, September 1975. Google ScholarDigital Library
- Guy L. Steele. Corrigendum: Multiprocessing compactifying garbage collection. Communications of the ACM, 19(6):354, June 1976.Google Scholar
Index Terms
- Mostly concurrent garbage collection revisited
Recommendations
Mostly concurrent garbage collection revisited
Special Issue: Proceedings of the OOPSLA '03 conferenceThe 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 ...
A parallel, incremental and concurrent GC for servers
PLDI '02: Proceedings of the ACM SIGPLAN 2002 conference on Programming language design and implementationMultithreaded applications with multi-gigabyte heaps running on modern servers provide new challenges for garbage collection (GC). The challenges for "server-oriented" GC include: ensuring short pause times on a multi-gigabyte heap, while minimizing ...
A parallel, incremental and concurrent GC for servers
Multithreaded applications with multi-gigabyte heaps running on modern servers provide new challenges for garbage collection (GC). The challenges for "server-oriented" GC include: ensuring short pause times on a multi-gigabyte heap, while minimizing ...
Comments