|
ABSTRACT
Garbage collection offers numerous software engineering advantages, but interacts poorly with virtual memory managers. Existing garbage collectors require far more pages than the application's working set and touch pages without regard to which ones are in memory, especially during full-heap garbage collection. The resulting paging can cause throughput to plummet and pause times to spike up to seconds or even minutes. We present a garbage collector that avoids paging. This bookmarking collector cooperates with the virtual memory manager to guide its eviction decisions. Using summary information ("bookmarks") recorded from evicted pages, the collector can perform in-memory full-heap collections. In the absence of memory pressure, the bookmarking collector matches the throughput of the best collector we tested while running in smaller heaps. In the face of memory pressure, it improves throughput by up to a factor of five and reduces pause times by up to a factor of 45 over the next best collector. Compared to a collector that consistently provides high throughput (generational mark-sweep), the bookmarking collector reduces pause times by up to 218x and improves throughput by up to 41x. Bookmarking collection thus provides greater utilization of available physical memory than other collectors while matching or exceeding their throughput.
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
|
J2SE 1.5.0 Documentation - Garbage Collector Ergonomics. Available at http://java.sun.com/j2se/1.5.0/docs/guide/vm/gc-ergonomics.html.
|
| |
2
|
Novell Documentation: NetWare 6 - Optimizing Garbage Collection. Available at http://www.novell.com/documentation/index.html.
|
| |
3
|
Technical white paper - BEA Weblogic JRockit: Java for the enterprise. Available at http://www.bea.com/content/news_events/white_papers/BEA_JRockit_wp.pdf.
|
 |
4
|
|
 |
5
|
|
 |
6
|
|
 |
7
|
Bowen Alpern , C. R. Attanasio , Anthony Cocchi , Derek Lieber , Stephen Smith , Ton Ngo , John J. Barton , Susan Flynn Hummel , Janice C. Sheperd , Mark Mergen, Implementing jalapeño in Java, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.314-324, November 01-05, 1999, Denver, Colorado, United States
|
| |
8
|
B. Alpern , C. R. Attanasio , J. J. Barton , M. G. Burke , P. Cheng , J.-D. Choi , A. Cocchi , S. J. Fink , D. Grove , M. Hind , S. F. Hummel , D. Lieber , V. Litvinov , M. F. Mergen , T. Ngo , J. R. Russell , V. Sarkar , M. J. Serrano , J. C. Shepherd , S. E. Smith , V. C. Sreedhar , H. Srinivasan , J. Whaley, The Jalapeño virtual machine, IBM Systems Journal, v.39 n.1, p.211-238, January 2000
|
| |
9
|
|
 |
10
|
|
 |
11
|
|
 |
12
|
David F. Bacon , Perry Cheng , V. T. Rajan, Controlling fragmentation and space consumption in the metronome, a real-time garbage collector for Java, Proceedings of the 2003 ACM SIGPLAN conference on Language, compiler, and tool for embedded systems, June 11-13, 2003, San Diego, California, USA
|
 |
13
|
David F. Bacon , Perry Cheng , V. T. Rajan, A real-time garbage collector with low overhead and consistent utilization, Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.285-298, January 15-17, 2003, New Orleans, Louisiana, USA
|
 |
14
|
|
 |
15
|
|
 |
16
|
Emery D. Berger , Kathryn S. McKinley , Robert D. Blumofe , Paul R. Wilson, Hoard: a scalable memory allocator for multithreaded applications, Proceedings of the ninth international conference on Architectural support for programming languages and operating systems, p.117-128, November 2000, Cambridge, Massachusetts, United States
|
| |
17
|
P. B. Bishop. Computer Systems with a Very Large Address Space and Garbage Collection. PhD thesis, MIT Laboratory for Computer Science, May 1977.
|
 |
18
|
|
| |
19
|
|
 |
20
|
|
 |
21
|
|
 |
22
|
|
 |
23
|
|
 |
24
|
|
 |
25
|
Eric Cooper , Scott Nettles , Indira Subramanian, Improving the performance of SML garbage collection using application-specific virtual memory management, Proceedings of the 1992 ACM conference on LISP and functional programming, p.43-52, June 22-24, 1992, San Francisco, California, United States
|
| |
26
|
S. P. E. Corporation. Specjbb2000. Available at http://www.spec.org/jbb2000/docs/userguide.html.
|
| |
27
|
S. P. E. Corporation. Specjvm98 documentation, Mar. 1999.
|
 |
28
|
|
| |
29
|
L. Eeckhout, A. Georges, and K. D. Bosschere. How Java programs interact with virtual machines at the microarchitectural level. pages 169--186.
|
 |
30
|
|
| |
31
|
M. Hertz and E. D. Berger. Automatic vs. explicit memory management: Settling the performance debate. Technical report, University of Massachusetts, Mar. 2004.
|
 |
32
|
Xianglong Huang , Stephen M. Blackburn , Kathryn S. McKinley , J Eliot B. Moss , Zhenlin Wang , Perry Cheng, The garbage collection advantage: improving program locality, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
| |
33
|
|
| |
34
|
S. F. Kaplan. In-kernel RIG: Downloads. Available at http://www.cs.amherst.edu/~sfkaplan/research/rig/download.
|
| |
35
|
|
| |
36
|
D. Lea. A memory allocator. http://gee.cs.oswego.edu/dl/html/malloc.html, 1997. Available at http://gee.cs.oswego.edu/dl/html/malloc.html.
|
 |
37
|
|
 |
38
|
Tian F. Lim , Przemysław Pardyak , Brian N. Bershad, A memory-efficient real-time non-copying garbage collector, Proceedings of the 1st international symposium on Memory management, p.118-129, October 17-19, 1998, Vancouver, British Columbia, Canada
|
 |
39
|
|
| |
40
|
|
| |
41
|
J. H. Reppy. A high-performance garbage collector for Standard ML. Technical memorandum, AT&T Bell Laboratories, Murray Hill, NJ, Dec. 1993.
|
 |
42
|
|
 |
43
|
Narendran Sachindran , J. Eliot , 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
|
 |
44
|
Narendran Sachindran , J. Eliot B. Moss , Emery D. Berger, MC2: high-performance garbage collection for memory-constrained environments, Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, October 24-28, 2004, Vancouver, BC, Canada
|
| |
45
|
P. Savola. LBNL traceroute heap corruption vulnerability. http://www.securityfocus.com/bid/1739.
|
| |
46
|
Software Verification, Ltd. Memory Validator - Garbage Collectors. Available at http://softwareverify.com/memoryValidator/garbageCollectors.html.
|
 |
47
|
Darko Stefanović , Kathryn S. McKinley , J. Eliot B. Moss, Age-based garbage collection, Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications, p.370-381, November 01-05, 1999, Denver, Colorado, United States
|
| |
48
|
G. Tong and M. J. O'Donnell. Leveled garbage collection. Journal of Functional and Logic Programming, 2001(5):1--22, May 2001.
|
 |
49
|
|
| |
50
|
R. van Riel. rmap VM patch for the Linux kernel. Available at http://www.surriel.com/patches/.
|
| |
51
|
D. A. Wheeler. SLOCcount. Available at http://www.dwheeler.com/sloccount.
|
| |
52
|
|
| |
53
|
|
 |
54
|
|
 |
55
|
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]
|
| |
56
|
|
CITED BY 19
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Chengliang Zhang , Kirk Kelsey , Xipeng Shen , Chen Ding , Matthew Hertz , Mitsunori Ogihara, Program-level adaptive memory management, Proceedings of the 2006 international symposium on Memory management, June 10-11, 2006, Ottawa, Ontario, Canada
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|