|
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
 |
1
|
|
 |
2
|
|
 |
3
|
Víctor Braberman , Federico Fernández , Diego Garbervetsky , Sergio Yovine, Parametric prediction of heap memory requirements, Proceedings of the 7th international symposium on Memory management, June 07-08, 2008, Tucson, AZ, USA
[doi> 10.1145/1375634.1375655]
|
 |
4
|
|
 |
5
|
|
 |
6
|
|
| |
7
|
D. Cohn and S. Singh. Predicting lifetimes in dynamically allocated memory. ANIPS'97.
|
| |
8
|
The DaCapo Benchmark Suite. http://dacapobench.org.
|
 |
9
|
David Detlefs , Christine Flood , Steve Heller , Tony Printezis, Garbage-first garbage collection, Proceedings of the 4th international symposium on Memory management, October 24-25, 2004, Vancouver, BC, Canada
[doi> 10.1145/1029873.1029879]
|
| |
10
|
Christine H. Flood , David Detlefs , Nir Shavit , Xiaolan Zhang, Parallel garbage collection for shared memory multiprocessors, Proceedings of the 2001 Symposium on JavaTM Virtual Machine Research and Technology Symposium, p.21-21, April 23-24, 2001, Monterey, California
|
| |
11
|
Open Source Software in Java. http://java-source.net.
|
| |
12
|
|
| |
13
|
M. Hertz, Y. Feng, and E. Berger. Page-level cooperative garbage collection. Univ. Massachusetts, Tech. Report, 2004.
|
 |
14
|
|
 |
15
|
|
| |
16
|
HotSpot Virtual Machine Garbage Collection. http://java.sun.com/javase/technologies/hotspot/gc.
|
| |
17
|
H. Inoue, D. Stefanovic, and S. Forrest. Object lifetime prediction in Java. Univ. New Mexico, Tech. Report, 2003.
|
| |
18
|
R. Jones. Dynamic memory management: Challenges for today and tomorrow. ILC'07.
|
| |
19
|
R. Jones and C. Ryder. Garbage collection should be lifetime aware. ICOOOLPS'06.
|
| |
20
|
|
 |
21
|
Haim Kermany , Erez Petrank, The Compressor: concurrent, incremental, and parallel compaction, Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation, June 11-14, 2006, Ottawa, Ontario, Canada
|
| |
22
|
Open Source J2SE. http://openjdk.java.net.
|
 |
23
|
|
 |
24
|
|
 |
25
|
Narendran Sachindran , J. Eliot B. Moss , B. Moss, Mark-copy: fast copying GC with less space overhead, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
| |
26
|
M.L. Seidl and B. Zorn. Low cost methods for predicting heap object behavior. WFDO'99.
|
| |
27
|
The SPEC Benchmarks. http://www.spec.org.
|
 |
28
|
|
| |
29
|
The VolanoMark Benchmark. http://www.volano.com.
|
 |
30
|
Michal Wegiel , Chandra Krintz, The mapping collector: virtual memory support for generational, parallel, and concurrent compaction, Proceedings of the 13th international conference on Architectural support for programming languages and operating systems, March 01-05, 2008, Seattle, WA, USA
|
| |
31
|
P.R. Wilson. Uniprocessor garbage collection techniques. Univ. Texas, Tech. Report, 1994.
|
| |
32
|
|
 |
33
|
|
 |
34
|
Ting Yang , Matthew Hertz , Emery D. Berger , Scott F. Kaplan , J. Eliot B. Moss, Automatic heap sizing: taking real memory into account, Proceedings of the 4th international symposium on Memory management, October 24-25, 2004, Vancouver, BC, Canada
[doi> 10.1145/1029873.1029881]
|
| |
35
|
Ting Yang , Emery D. Berger , Scott F. Kaplan , J. Eliot B. Moss , B. Moss, CRAMM: virtual memory support for garbage-collected applications, Proceedings of the 7th USENIX Symposium on Operating Systems Design and Implementation, p.8-8, November 06-08, 2006, Seattle, WA
|
 |
36
|
Chengliang Zhang , Kirk Kelsey , Xipeng Shen , Chen Ding , Matthew Hertz , Mitsunori Ogihara, Program-level adaptive memory management, Proceedings of the 5th international symposium on Memory management, June 10-11, 2006, Ottawa, Ontario, Canada
[doi> 10.1145/1133956.1133979]
|
 |
37
|
|
|