ABSTRACT
To date, the most commonly used criterion for invoking garbage collection (GC) is based on heap usage; that is, garbage collection is invoked when the heap or an area inside the heap is full. This approach can suffer from two performance shortcomings: untimely garbage collection invocations and large volumes of surviving objects. In this work, we explore a new GC triggering approach called MicroPhase that exploits two observations: (i) allocation requests occur in phases and (ii) phase boundaries coincide with times when most objects also die. Thus, proactively invoking garbage collection at these phase boundaries can yield high efficiency. We extended the HotSpot virtual machine from Sun Microsystems to support MicroPhase and conducted experiments using 20 benchmarks. The experimental results indicate that our technique can reduce the GC times in 19 applications. The differences in GC overhead range from an increase of 1% to a decrease of 26% when the heap is set to twice the maximum live-size. As a result, MicroPhase can improve the overall performance of 13 benchmarks. The performance differences range from a degradation of 2.5% to an improvement of 14%.
- David F. Bacon, Perry Cheng, and V. T. Rajan. Controlling fragmentation and space consumption in the Metronome, a real-time garbage collector for Java. In Proceedings of the 2003 ACM SIGPLAN/SIGBED Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES), pages 81--92, San Diego, California, USA, June 2003. Google Scholar
Digital Library
- David F. Bacon, Ravi Konuru, Chet Murthy, and Mauricio Serrano. Thin locks: Featherweight synchronization for Java. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 258--268, Montreal, Quebec, Canada, June 1998. Google Scholar
Digital Library
- S. M. Blackburn, R. E. Jones, K. S. McKinley, and J. E. B. Moss. Beltway: Getting around garbage collection gridlock. In Proceedings of the ACM SIGPLAN Programming Languages Design and Implementation (PLDI), pages 153--164, Berlin, Germany, 2002. Google Scholar
Digital Library
- S. M. Blackburn, S. Singhai, M. Hertz, K. S. McKinely, and J. E. B. Moss. Pretenuring for Java. In Proceedings of the ACM SIGPLAN Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA), pages 342--352, Tampa Bay, FL, October 2001. Google Scholar
Digital Library
- Stephen M. Blackburn, Robin Garner, Chris Hoffmann, Asjad M. Khang, Kathryn S. McKinley, Rotem Bentzur, Amer Diwan, Daniel Feinberg, Daniel Frampton, Samuel Z. Guyer, Martin Hirzel, Antony Hosking, Maria Jump, Han Lee, J. Eliot, BMoss, Aashish Phansalkar, Darko Stefanović, Thomas VanDrunen, Daniel von Dincklage, and Ben Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pages 169--190, Portland, Oregon, USA, 2006 Google Scholar
Digital Library
- T. Brecht, E. Arjomandi, C. Li, and H. Pham. Controlling garbage collection and heap growth to reduce the execution time of Java applications. In Proceedings of the Object-Oriented Programming Systems Languages and Applications (OOPSLA), pages 353--366, Tampa Bay, FL, USA, 2001. Google Scholar
Digital Library
- Dries Buytaert, Kris Venstermans, Lieven Eeckhout, and Koen De Bosschere. Garbage collection hints. In Proceedings of the First International Conference on High Performance Embedded Architectures and Compilers (HiPEAC 2005), pages 233--248, Barcelona, Spain, 11 2005. Springer Verlag. Google Scholar
Digital Library
- WenKe Chen, Sanjay Bhansali, Trishul Chilimbi, Xiaofeng Gao, and Weihaw Chuang. Profile-guided proactive garbage collection for locality optimization. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (OOPSLA), pages 332--340, Ottawa, Ontario, Canada, 2006. Google Scholar
Digital Library
- Perry Cheng and Guy E. Blelloch. A parallel, real-time garbage collector. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 125--136, Snowbird, Utah, USA, 2001. Google Scholar
Digital Library
- S. Dieckmann and U. Hölzle. A study of the allocation behavior of the SPECjvm98 Java benchmarks. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 92--115, Lisbon, Portugal, June 1999. Springer Verlag. Google Scholar
Digital Library
- Chen Ding, Chengliang Zhang, Xipeng Shen, and Mitsunori Ogihara. Gated memory control for memory monitoring, leak detection and garbage collection. In Proceedings of the Workshop on Memory System Performance (MSP), pages 62--67, Chicago, Illinois, 2005. Google Scholar
Digital Library
- Tamar Domani, Gal Goldshtein, Elliot K. Kolodner, Ethan Lewis, Erez Petrank, and Dafna Sheinwald. Thread-local heaps for Java. SIGPLAN Notices, 38(2 supplement):76--87, 2003. Google Scholar
Digital Library
- Samuel Z. Guyer, Kathryn S. McKinley, and Daniel Frampton. Free-me: a static analysis for automatic individual object reclamation. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 364--375, Ottawa, Ontario, Canada, 2006. Google Scholar
Digital Library
- Matthias Hauswirth, Peter F. Sweeney, Amer Diwan, and Michael Hind. Vertical profiling: Understanding the behavior of object-oriented applications. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pages 251--269, Vancouver, British Columbia, Canada, October 2004. Google Scholar
Digital Library
- Matthew Hertz, Stephen M. Blackburn, J. Eliot B. Moss, Kathryn S. McKinley, and Darko Stefanović. Error-free garbage collection traces: How to cheat and not get caught. In Proceedings of the 2002 ACM International Conference on Measurement and Modeling of Computer Systems (SIGMETRICS), pages 140--151, Marina Del Rey, California, 2002. Google Scholar
Digital Library
- IBM. Jikes Research Virtual Machine. http://jikesrvm.sourceforge.net.Google Scholar
- R. Jones and R. Lins. Garbage Collection: Algorithms for automatic Dynamic Memory Management. John Wiley and Sons, 1998. Google Scholar
Digital Library
- Peter Mikhalenko. Real-time Java: An introduction. On-Line Article, Last visited: July 2007. http://www.onjava.com/pub/a/onjava/2006/05/10/real-time-\\java-introductio%n.html.Google Scholar
- Priya Nagpurkar and Chandra Krintz. Visualization and analysis of phased behavior in Java programs. In Proceedings of the ACM International Conference on the Principles and Practice of Programming in Java (PPPJ), Las Vegas, Nevada, USA, 2004. Google Scholar
Digital Library
- Priya Nagpurkar, Chandra Krintz, Michael Hind, Peter F. Sweeney, and V. T. Rajan. Online phase detection algorithms. In Proceedings of the International Symposium on Code Generation and Optimization (CGO), pages 111--123, Manhattan, NY, USA, 2006. Google Scholar
Digital Library
- Yang Qian, Wei Huang, Witawas Srisa-an, and J. Morris Chang. Allocation Pattern and GC Triggering. Technical Report TR-UNL-CSE-2003-0017, University of Nebraska-Lincoln, Lincoln, Nebraska, U.S.A., October 2003. http://lakota.unl.edu//facdb/TechReportArchive/TR-UNL-CSE-2003-0017.pdf.Google Scholar
- Yang Qian, W. Srisa-an, T. Skotiniotis, and J. M. Chang. A cycle-accurate per-thread timer for Linux operating system. In Proceedings of IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS), pages 38--44, Tucson, Arizona, USA, November 2001.Google Scholar
- Sven Gestegard Robertz and Roger Henriksson. Time-triggered garbage collection: robust and adaptive real-time GC scheduling for embedded systems. In LCTES '03: Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, pages 93--102, San Diego, California, USA, 2003. Google Scholar
Digital Library
- Ran Shaham, Elliot K. Kolodner, and Mooly Sagiv. On effectiveness of GC in Java. In Proceedings of the International Symposium on Memory Management (ISMM), pages 12--17, Minneapolis, Minnesota, United States, 2000. Google Scholar
Digital Library
- Jon Shemitz. Using RDTSC for benchmarking code on Pentium computers, Last visited: July 2007. http://www.midnightbeach.com/jon/pubs/rdtsc.htm.Google Scholar
- Standard Performance Evaluation Corporation. SPECjbb2000. White Paper, Last visited: July 2007. http://www.spec.org/osg/jbb2000/docs/whitepaper.html.Google Scholar
- Standard Performance Evaluation Corporation. SPECjvm98 benchmarks, Last visited: July 2007. http://www.spec.org/osg/jvm98.Google Scholar
- Bjarne Steensgaard. Thread-specific heaps for multi-threaded programs. In Proceedings of the International Symposium on Memory Management, pages 18--24, Minneapolis, Minnesota, United States, 2000. Google Scholar
Digital Library
- Darko Stefanović, Matthew Hertz, Stephen M. Blackburn, Kathryn S. McKinley, and J. Eliot B. Moss. Older-first garbage collection in practice: Evaluation in a Java virtual machine. SIGPLAN Notices, 38(2 supplement):25--36, 2003. Google Scholar
Digital Library
- Darko Stefanović, Kathryn S. McKinley, and J. Eliot B. Moss. Age-based garbage collection. In Proceedings of the ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), pages 370--381, Denver, Colorado, United States, November 1999. Google Scholar
Digital Library
- Sun Microsystems. Java technology is everywhere, surpasses 1.5 billion devices worldwide. Press Release, February 2004. http://www.sun.com/smi/Press/sunflash/2004--02/sunflash.20040219.1.html.Google Scholar
- David Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In Proceedings of the First ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 157--167, 1984. Google Scholar
Digital Library
- P. R. Wilson. Opportunistic garbage collection. ACM SIGPLAN Notices, 23(12):98--102, 1988. Google Scholar
Digital Library
- Paul R. Wilson and Thomas G. Moher. Design of the opportunistic garbage collector. ACM SIGPLAN Notices, 24:23--35, 1989. Google Scholar
Digital Library
- Feng Xian, Witawas Srisa-an, ChengHuan Jia, and Hong Jiang. AS-GC: An efficient generational garbage collector for Java application servers. In Proceedings of the European Conference on Object-Oriented Programming (ECOOP), pages 126--150, Berlin, Germany, July 2007. Google Scholar
Digital Library
- Feng Xian, Witawas Srisa-an, and Hong Jiang. Investigating the throughput degradation behavior of Java application servers: A view from inside the virtual machine. In Proceedings of the 4th International Conference on Principles and Practices of Programming in Java (PPPJ), pages 40--49, Mannheim, Germany, 2006. Google Scholar
Digital Library
- Karen Zee and Martin Rinard. Write barrier removal by static analysis. In Proceedings of the Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), pages 191--210, Seattle, Washington, USA, 2002. Google Scholar
Digital Library
Index Terms
Microphase: an approach to proactively invoking garbage collection for improved performance
Recommendations
Microphase: an approach to proactively invoking garbage collection for improved performance
Proceedings of the 2007 OOPSLA conferenceTo date, the most commonly used criterion for invoking garbage collection (GC) is based on heap usage; that is, garbage collection is invoked when the heap or an area inside the heap is full. This approach can suffer from two performance shortcomings: ...
A generational on-the-fly garbage collector for Java
PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementationAn on-the-fly garbage collector does not stop the program threads to perform the collection. Instead, the collector executes in a separate thread (or process) in parallel to the program. On-the-fly collectors are useful for multi-threaded applications ...
Age-based garbage collection
Modern generational garbage collectors look for garbage among the young objects, because they have high mortality; however, these objects include the very youngest objects, which clearly are still live. We introduce new garbage collection algorithms, ...







Comments