ABSTRACT
The growth in complexity of modern systems makes it increasingly difficult to extract high-performance. The software stacks for such systems typically consist of multiple layers and include managed runtime environments (MREs). In this paper, we investigate techniques to improve cooperation between these layers and the hardware to increase the efficacy of automatic memory management in MREs.
General-purpose MREs commonly implement parallel and/or concurrent garbage collection and employ compaction to eliminate heap fragmentation. Moreover, most systems trigger collection based on the amount of heap a program uses. Our analysis shows that in many cases this strategy leads to ineffective collections that are unable to reclaim sufficient space to justify the incurred cost. To avoid such collections, we exploit the observation that dead objects tend to cluster together and form large, never-referenced, regions in the address space that correlate well with virtual pages that have not recently been referenced by the application. We leverage this correlation to design a new, simple and light-weight, yield predictor that estimates the amount of reclaimable space in the heap using hardware page reference bits. Our predictor allows MREs to avoid low-yield collections and thereby improve resource management.
We integrate this predictor into three state-of-the-art parallel compactors, implemented in the HotSpot JVM, that represent distinct canonical heap layouts. Our empirical evaluation, based on standard Java benchmarks and open-source applications, indicates that inexpensive and accurate yield prediction can improve performance significantly.
- A.W. Appel and K.Li. Virtual memory primitives for user programs. ACM SIGPLAN Notices, 26(4), 1991. Google Scholar
Digital Library
- D.A. Barrett and B.G. Zorn. Using lifetime predictors to improve memory allocation performance. PLDI'93. Google Scholar
Digital Library
- V. Braberman, F. Fernandez, D. Garbervetsky, and S. Yovine. Parametric prediction of heap memory requirements. ISMM'08. Google Scholar
Digital Library
- P. Cheng and G. Blelloch. A parallel, real-time garbage collector. PLDI'01. Google Scholar
Digital Library
- C. Click, G. Tene, and M. Wolf. The pauseless GC algorithm. VEE'05. Google Scholar
Digital Library
- J. Cohen and A. Nicolau. Comparison of compacting algorithms for garbage collection. TOPLAS, 5(4), 1983. Google Scholar
Digital Library
- D. Cohn and S. Singh. Predicting lifetimes in dynamically allocated memory. ANIPS'97.Google Scholar
- The DaCapo Benchmark Suite. http://dacapobench.org.Google Scholar
- D. Detlefs, C. Flood, S. Heller, and T. Printezis. Garbage-first garbage collection. ISMM'04. Google Scholar
Digital Library
- C. Flood, D. Detlefs, N. Shavit, and C. Zhang. Parallel garbage collection for shared memory multiprocessors. JVM'01. Google Scholar
Digital Library
- Open Source Software in Java. http://java-source.net.Google Scholar
- C. Grzegorczyk, S. Soman, C. Krintz, and R. Wolski. Isla Vista heap sizing: Using feedback to avoid paging. CGO'07. Google Scholar
Digital Library
- M. Hertz, Y. Feng, and E. Berger. Page-level cooperative garbage collection. Univ. Massachusetts, Tech. Report, 2004.Google Scholar
- M. Hertz, Y. Feng, and E.D. Berger. Garbage collection without paging. PLDI'05. Google Scholar
Digital Library
- A.L. Hosking and J.E.B. Moss. Protection traps and alternatives for memory management of an object-oriented language. SOSP'93. Google Scholar
Digital Library
- HotSpot Virtual Machine Garbage Collection. http://java.sun.com/javase/technologies/hotspot/gc.Google Scholar
- H. Inoue, D. Stefanovic, and S. Forrest. Object lifetime prediction in Java. Univ. New Mexico, Tech. Report, 2003.Google Scholar
- R. Jones. Dynamic memory management: Challenges for today and tomorrow. ILC'07.Google Scholar
- R. Jones and C. Ryder. Garbage collection should be lifetime aware. ICOOOLPS'06.Google Scholar
- R.E. Jones. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, July 1996. Google Scholar
Digital Library
- H. Kermany and E. Petrank. The Compressor: Concurrent, incremental and parallel compaction. PLDI'06. Google Scholar
Digital Library
- Open Source J2SE. http://openjdk.java.net.Google Scholar
- Y. Ossia, O. Ben-Yitzhak, and M. Segal. Mostly concurrent compaction for mark-sweep GC. ISMM'04. Google Scholar
Digital Library
- C. Ruggieri and T.P. Murtagh. Lifetime analysis of dynamically allocated objects. POPL'88. Google Scholar
Digital Library
- N. Sachindran and E. Moss. MarkCopy: Fast copying GC with less space overhead. OOPSLA'03. Google Scholar
Digital Library
- M.L. Seidl and B. Zorn. Low cost methods for predicting heap object behavior. WFDO'99.Google Scholar
- The SPEC Benchmarks. http://www.spec.org.Google Scholar
- D.M. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. ACM SIGPLAN Notices, 19(5), 1984. Google Scholar
Digital Library
- The VolanoMark Benchmark. http://www.volano.com.Google Scholar
- M. Wegiel and C. Krintz. The Mapping Collector: Virtual memory support for generational, parallel, and concurrent compaction. ASPLOS'08. Google Scholar
Digital Library
- P.R. Wilson. Uniprocessor garbage collection techniques. Univ. Texas, Tech. Report, 1994.Google Scholar
- P.R. Wilson, M.S. Johnstone, M. Neely, and D. Boles. Dynamic storage allocation: A survey and critical review. IWMM'95. Google Scholar
Digital Library
- F. Xian, W. Srisa-an, and H. Jiang. Microphase: an approach to proactively invoking garbage collection for improved performance. OOPSLA'07. Google Scholar
Digital Library
- T. Yang, E.D. Berger, M. Hertz, S.F. Kaplan, and J.E.B. Moss. Autonomic heap sizing: Taking real memory into account. ISMM'04. Google Scholar
Digital Library
- T. Yang, E.D. Berger, S.F. Kaplan, and J.E.B. Moss. CRAMM: Virtual memory support for garbage-collected applications. OSDI'06. Google Scholar
Digital Library
- C. Zhang, K. Kelsey, X. Shen, C. Ding, M. Hertz, and M. Ogihara. Program-level adaptive memory management. ISMM'06. Google Scholar
Digital Library
- B. Zorn and M. Seidl. Segregating heap objects by reference behavior and lifetime. ASPLOS'98. Google Scholar
Digital Library
Index Terms
Dynamic prediction of collection yield for managed runtimes
Recommendations
Dynamic prediction of collection yield for managed runtimes
ASPLOS 2009The growth in complexity of modern systems makes it increasingly difficult to extract high-performance. The software stacks for such systems typically consist of multiple layers and include managed runtime environments (MREs). In this paper, we ...
Dynamic prediction of collection yield for managed runtimes
ASPLOS 2009The growth in complexity of modern systems makes it increasingly difficult to extract high-performance. The software stacks for such systems typically consist of multiple layers and include managed runtime environments (MREs). In this paper, we ...
Concurrent, parallel, real-time garbage-collection
ISMM '10: Proceedings of the 2010 international symposium on Memory managementWith the current developments in CPU implementations, it becomes obvious that ever more parallel multicore systems will be used even in embedded controllers that require real-time guarantees. When garbage collection is used in these systems, parallel ...








Comments