Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Garbage collection without paging

Published: 12 June 2005 Publication History

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

[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]
S. E. Abdullahi and G. A. Ringwood. Garbage collecting the Internet: a survey of distributed garbage collection. ACM Computing Surveys, 30(3):330--373, Sept. 1998.
[5]
A.-R. Adl-Tabatabai, R. L. Hudson, M. J. Serrano, and S. Subramoney. Prefetch injection based on hardware monitoring and object metadata. In Proceedings of the 2004 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). ACM, June 2004.
[6]
R. Alonso and A. W. Appel. Advisor for flexible working sets. In Proceedings of the 1990 ACM Sigmetrics Conference on Measurement and Modeling of Computer Systems, pages 153--162, Boulder, CO, May 1990.
[7]
B. Alpern, C. R. Attanasio, A. Cocchi, D. Lieber, S. Smith, T. Ngo, J. J. Barton, S. F. Hummel, J. C. Shepherd, and M. Mergen. Implementing Jalapeño in Java. In Proceedings of the ACM Conference on Object-Oriented Systems, Languages and Applications, volume 34(10), pages 314--324, Denver, CO, Oct. 1999.
[8]
B. Alpern, D. 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. Mergen, T. Ngo, J. R. Russell, V. Sarkar, M. J. Serrano, J. Shepherd, S. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeño virtual machine. IBM Systems Journal, 39(1), Feb. 2000.
[9]
A. W. Appel. Simple generational garbage collection and fast allocation. Software Practice and Experience, 19(2):171--183, 1989.
[10]
A. W. Appel, J. R. Ellis, and K. Li. Real-time concurrent collection on stock multiprocessors. ACM SIGPLAN Notices, 23(7):11--20, 1988.
[11]
A. W. Appel and K. Li. Virtual memory primitives for user programs. ACM SIGPLAN Notices, 26(4):96--107, 1991.
[12]
D. F. Bacon, P. Cheng, and V. Rajan. Controlling fragmentation and space consumption in the Metronome, a real-time garbage collector for Java. In ACM SIGPLAN 2003 Conference on Languages, Compilers, and Tools for Embedded Systems (LCTES'2003), pages 81--92, San Diego, CA, June 2003. ACM Press.
[13]
D. F. Bacon, P. Cheng, and V. Rajan. A real-time garbage collecor with low overhead and consistent utilization. In Conference Record of the Thirtieth Annual ACM Symposium on Principles of Programming Languages, ACM SIGPLAN Notices, New Orleans, LA, Jan. 2003. ACM Press.
[14]
H. D. Baecker. Garbage collection for virtual memory computer systems. Communications of the ACM, 15(11):981--986, Nov. 1972.
[15]
H. G. Baker. List processing in real-time on a serial computer. Communications of the ACM, 21(4):280--94, 1978.
[16]
E. D. Berger, K. S. McKinley, R. D. Blumofe, and P. R. Wilson. Hoard: A scalable memory allocator for multithreaded applications. In ASPLOS-IX: Ninth International Conference on Architectural Support for Programming Languages and Operating Systems, pages 117--128, Cambridge, MA, Nov. 2000.
[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]
S. M. Blackburn, P. Cheng, and K. S. McKinley. Myths and reality: The performance impact of garbage collection. In Sigmetrics - Performance 2004, Joint International Conference on Measurement and Modeling of Computer Systems, New York, NY, June 2004.
[19]
S. M. Blackburn, P. Cheng, and K. S. McKinley. Oil and water? High performance garbage collection in Java with MMTk. In ICSE 2004, 26th International Conference on Software Engineering, Edinburgh, May 2004.
[20]
D. G. Bobrow and D. L. Murphy. Structure of a LISP system using two-level storage. Communications of the ACM, 10(3):155--159, Mar. 1967.
[21]
D. G. Bobrow and D. L. Murphy. A note on the efficiency of a LISP computation in a paged machine. Communications of the ACM, 11(8):558--560, Aug. 1968.
[22]
C. J. Cheney. A non-recursive list compacting algorithm. Communications of the ACM, 13(11):677--8, Nov. 1970.
[23]
P. Cheng and G. Belloch. A parallel, real-time garbage collector. In Proceedings of SIGPLAN 2001 Conference on Programming Languages Design and Implementation, ACM SIGPLAN Notices, pages 125--136, Snowbird, Utah, June 2001. ACM Press.
[24]
T. M. Chilimbi and J. R. Larus. Using generational garbage collection to implement cache-conscious data placement. In Proceedings of the First International Symposium on Memory Management, volume 34(3), pages 37--48, Vancouver, BC, Canada, Oct. 1998.
[25]
E. Cooper, S. Nettles, and I. Subramanian. Improving the performance of SML garbage collection using application-specific virtual memory management. In Conference Record of the 1992 ACM Symposium on Lisp and Functional Programming, pages 43--52, San Francisco, CA, June 1992. ACM Press.
[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]
R. Courts. Improving locality of reference in a garbage-collecting memory management-system. Communications of the ACM, 31(9):1128--1138, 1988.
[29]
L. Eeckhout, A. Georges, and K. D. Bosschere. How Java programs interact with virtual machines at the microarchitectural level. pages 169--186.
[30]
R. R. Fenichel and J. C. Yochelson. A Lisp garbage collector for virtual memory computer systems. Communications of the ACM, 12(11):611--612, Nov. 1969.
[31]
M. Hertz and E. D. Berger. Automatic vs. explicit memory management: Settling the performance debate. Technical report, University of Massachusetts, Mar. 2004.
[32]
X. Huang, S. M. Blackburn, K. S. McKinley, J. E. B. Moss, Z. Wang, and P. Cheng. The garbage collection advantage: Improving program locality. In Proceeding of the ACM Conference on Object-Oriented Systems, Languages and Applications, Vancouver, BC, Canada, Oct. 2004.
[33]
R. E. Jones and R. Lins. Garbage Collection: Algorithms for Automatic Dynamic Memory Management. Wiley, Chichester, July 1996.
[34]
S. F. Kaplan. In-kernel RIG: Downloads. Available at http://www.cs.amherst.edu/~sfkaplan/research/rig/download.
[35]
M. S. Lam, P. R. Wilson, and T. G. Moher. Object type directed garbage collection to improve locality. In Proceedings of International Workshop on Memory Management, volume 637 ofLecture Notes in Computer Science, St Malo, France, 16--18 Sept. 1992. Springer-Verlag.
[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]
H. Lieberman and C. E. Hewitt. A real-time garbage collector based on the lifetimes of objects. Communications of the ACM, 26(6):419--429, 1983.
[38]
T. F. Lim, P. Pardyak, and B. N. Bershad. A memory-efficient real-time non-copying garbage collector. In Proceedings of the First International Symposium on Memory Management, volume 34(3), pages 118--129, Vancouver, BC, Canada, Oct. 1998.
[39]
D. A. Moon. Garbage collection in a large LISP system. In G. L. Steele, editor,Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, pages 235--245, Austin, TX, Aug. 1984. ACM Press.
[40]
D. Plainfossé and M. Shapiro. A survey of distributed garbage collection techniques. In Proceedings of the International Workshop on Memory Management, volume 986 ofLecture Notes in Computer Science, Kinross, Scotland, Sept. 1995. Springer-Verlag.
[41]
J. H. Reppy. A high-performance garbage collector for Standard ML. Technical memorandum, AT&T Bell Laboratories, Murray Hill, NJ, Dec. 1993.
[42]
D. T. Ross. The AED free storage package. Communications of the ACM, 10(8):481--492, Aug. 1967.
[43]
N. Sachindran and J. E. B. Moss. Mark Copy: Fast copying GC with less space overhead. In Proceedings of the ACM Conference on Object-Oriented Systems, Languages and Applications, Anaheim, CA, Nov. 2003.
[44]
N. Sachindran, J. E. B. Moss, and E. D. Berger. normal MC 2: High-performance garbage collection for memory-constrained environments. In Proceedings of the ACM Conference on Object-Oriented Systems, Languages and Applications, Vancouver, BC, Canada, Oct. 2004.
[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]
D. StefanoviĆ, K. S. McKinley, and J. E. B. Moss. Age-based garbage collection. In Proceedings of the ACM Conference on Object-Oriented Systems, Languages and Applications, volume 34(10), pages 370--381, Denver, CO, Oct. 1999.
[48]
G. Tong and M. J. O'Donnell. Leveled garbage collection. Journal of Functional and Logic Programming, 2001(5):1--22, May 2001.
[49]
D. M. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In Proceedings of the ACM/SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, volume 19(5), pages 157--167, Apr. 1984.
[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]
P. R. Wilson. Uniprocessor garbage collection techniques. In Proceedings of the International Workshop on Memory Management, volume 637 ofLecture Notes in Computer Science, St Malo, France, 16--18 Sept. 1992. Springer-Verlag.
[53]
P. R. Wilson, M. S. Johnstone, M. Neely, and D. Boles. Dynamic storage allocation: A survey and critical review. In Proceedings of the International Workshop on Memory Management, volume 986 ofLecture Notes in Computer Science, pages 1--116, Kinross, Scotland, Sept. 1995. Springer-Verlag.
[54]
P. R. Wilson, M. S. Lam, and T. G. Moher. Effective static-graph reorganization to improve locality in garbage collected systems. ACM SIGPLAN Notices, 26(6):177--191, 1991.
[55]
T. Yang, M. Hertz, E. D. Berger, S. F. Kaplan, and J. E. B. Moss. Automatic heap sizing: Taking real memory into account. In Proceedings of the 2004 ACM SIGPLAN International Symposium on Memory Management, Nov. 2004.
[56]
B. Zorn. The measured cost of conservative garbage collection. Software Practice and Experience, 23:733--756, 1993.

Cited By

View all
  • (2016)JVM Configuration Management and Its Performance Impact for Big Data Applications2016 IEEE International Congress on Big Data (BigData Congress)10.1109/BigDataCongress.2016.64(410-417)Online publication date: Jun-2016
  • (2016)Efficient Management for Hybrid Memory in Managed Language RuntimeNetwork and Parallel Computing10.1007/978-3-319-47099-3_3(29-42)Online publication date: 28-Oct-2016
  • (2015)A Detection and Measurement Approach for Memory Leaked Objects in Java ProgramsIEICE Transactions on Information and Systems10.1587/transinf.2014EDP7320E98.D:5(1053-1061)Online publication date: 2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 40, Issue 6
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
June 2005
325 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/1064978
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI '05: Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
    June 2005
    338 pages
    ISBN:1595930566
    DOI:10.1145/1065010
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 12 June 2005
Published in SIGPLAN Volume 40, Issue 6

Check for updates

Author Tags

  1. bookmarking collection
  2. garbage collection
  3. generational collection
  4. memory pressure
  5. paging
  6. virtual memory

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)37
  • Downloads (Last 6 weeks)3
Reflects downloads up to 04 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2016)JVM Configuration Management and Its Performance Impact for Big Data Applications2016 IEEE International Congress on Big Data (BigData Congress)10.1109/BigDataCongress.2016.64(410-417)Online publication date: Jun-2016
  • (2016)Efficient Management for Hybrid Memory in Managed Language RuntimeNetwork and Parallel Computing10.1007/978-3-319-47099-3_3(29-42)Online publication date: 28-Oct-2016
  • (2015)A Detection and Measurement Approach for Memory Leaked Objects in Java ProgramsIEICE Transactions on Information and Systems10.1587/transinf.2014EDP7320E98.D:5(1053-1061)Online publication date: 2015
  • (2013)An equation-based Heap Sizing RulePerformance Evaluation10.1016/j.peva.2013.05.00970:11(948-964)Online publication date: 1-Nov-2013
  • (2008)LeakSurvivorUSENIX 2008 Annual Technical Conference10.5555/1404014.1404040(307-320)Online publication date: 22-Jun-2008
  • (2024)Memory Management on Mobile DevicesProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665510(15-29)Online publication date: 20-Jun-2024
  • (2024)More Apps, Faster Hot-Launch on Mobile Devices via Fore/Background-aware GC-Swap Co-designProceedings of the 29th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3620666.3651377(654-670)Online publication date: 27-Apr-2024
  • (2024)Toward an SGX-Friendly Java RuntimeIEEE Transactions on Computers10.1109/TC.2023.331840073:1(44-57)Online publication date: Jan-2024
  • (2022)Optimal heap limits for reducing browser memory useProceedings of the ACM on Programming Languages10.1145/35633236:OOPSLA2(986-1006)Online publication date: 31-Oct-2022
  • (2020)End the senseless killingProceedings of the 2020 USENIX Conference on Usenix Annual Technical Conference10.5555/3489146.3489206(873-887)Online publication date: 15-Jul-2020
  • Show More Cited By

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media