Skip to main content

Index-Compact Garbage Collection

  • Conference paper
Programming Languages and Systems (APLAS 2010)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6461))

Included in the following conference series:

Abstract

Automatic garbage collection is currently adopted by many object-oriented programming systems. Among the many variants, a mark-compact garbage collector offers high space efficiency and cheap object allocation, but suffers from poor virtual memory interactions. It needs to linearly scan through the entire available heap, triggering many page faults which may lead to excessively long collection time. We propose building an object reference index while tracing the heap, which in the following stages can be used to directly locate the live objects. As the dead objects are not touched, the collection time becomes dependent only on the size of the live data set. We have implemented a prototype in Jikes RVM, which shows promising results with the SPECjvm98 benchmarks.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. McCarthy, J.: Recursive Functions Symbolic Expressions and Their Computation by Machine. Communication of the ACM 3(4), 184–195 (1960)

    Article  MATH  Google Scholar 

  2. Saunders, R.A.: The LISP System for the Q-32 Computer. In: Berkeley and Bobrow, pp. 220–231 (1964)

    Google Scholar 

  3. Martin, J.J.: An efficient garbage compaction algorithm. Communications of the ACM 25(8), 571–580 (1982)

    Article  MathSciNet  MATH  Google Scholar 

  4. Morris, F.L.: A Time- and Space- Efficient Garbage Compaction Algorithm. Communications of the ACM 21(8), 662–665 (1978)

    Article  MATH  Google Scholar 

  5. Kermany, H., Petrank, E.: The Compressor: Concurrent, Incremental, and Parallel Compaction. In: ACM Conference on Programming Language Design and Implementation, pp. 354–363 (2006)

    Google Scholar 

  6. Jones, R., Lins, R.: Garbage Collection: Algorithm for Automatic Dynamic Memory Management. John Wiley&Sons, Chichester (1997)

    MATH  Google Scholar 

  7. Wilson, P.R.: Uniprocessor Garbage Collection Techniques. In: Proceedings of the International Workshop on Memory Management, pp. 1–42 (1992)

    Google Scholar 

  8. Haddon, B.K., Waite, W.M.: A Compaction Procedure for Variable Length Storage Element. The Computer Journal 10(2), 162–165 (1967)

    Article  MATH  Google Scholar 

  9. Lieberman, H., Hewitt, C.: A Real-time Garbage Collection Based on the Lifetimes of Objects. Communication of the ACM 26(6), 419–429 (1983)

    Article  Google Scholar 

  10. MaGachey, P., Hosking, A.L.: Reducing Generational Copy Reserve Overhead with Fallback Compaction. In: International Symposium on Memory Management, pp. 17–28 (2006)

    Google Scholar 

  11. Blackburn, S.M., Cheng, P., McKinley, K.S.: Oil and Water? High Performance Garbage Collection in Java with MMTk. In: International Conference on Software Engineering, pp. 137–146 (2004)

    Google Scholar 

  12. Alpern, B., Augart, S., Blackburn, S.M.: The Jikes Research Virtual Machine Project: Building an Open-source Research Community. IBM Systems Journal special issue on Open Source Software 44(2), 399–417 (2005)

    Google Scholar 

  13. Alpern, B., Attanasio, C.R., Barton, J.J.: The Jalapeno Virtual Machine. IBM Systems Journal 39(1), 211–238 (2000)

    Article  Google Scholar 

  14. Cheney, C.J.: A Nonrecursive List Compacting Algorithm. Communication of the ACM 13(11), 677–678 (1970)

    Article  MATH  Google Scholar 

  15. Jonkers, H.B.M.: A Fast Garbage Compaction Algorithm. Information Processing Letters 9(9), 25–30 (1979)

    Google Scholar 

  16. Sansom, P.M.: Combining Single-Space and Two-Space Compacting Garbage Collectors. In: Proceedings of the Glasgow Workshop on Functional Programming (1991)

    Google Scholar 

  17. Wegiel, M., Krintz, C.: The mapping collector: virtual memory support for generational, parallel, and concurrent compaction. In: International Conference on Architectural Support for Programming Languages and Operating Systems, pp. 91–102 (2008)

    Google Scholar 

  18. Fisher, D.A.: Bounded Workspace Garbage Collection in an Address Order Preserving List Processing Environment. Information Processing Letters 3(1), 25–32 (1974)

    Article  MATH  Google Scholar 

  19. Baecker, H.D.: Garbage Collection for Virtual Memory Computer Systems. Communications of the ACM 15(11), 981–986 (1972)

    Article  Google Scholar 

  20. Cohen, J., Nicolau, A.: Comparison of Compacting Algorithms for Garbage Collection. ACM Transactions on Programming Languages and Systems 5(4), 532–553 (1983)

    Article  Google Scholar 

  21. Ossia, Y., Yitzhak, O.B., Segal, M.: Mostly Concurrent Compaction for Mark-Sweep GC. In: International Symposium on Memory Management, pp. 25–36 (2004)

    Google Scholar 

  22. Printezis, T.: Hot-swapping between a mark&sweep and a mark&compact garbage collector in a generational environment. In: Symposium on JavaTM Virtual Machine Research and Technology Symposium, pp. 20–32 (2001)

    Google Scholar 

  23. Yu, Z.C.H., Lau, F.C.M., Wang, C.-L.: Exploiting Java Objects Behavior for Memory Management and Optimizations. In: Asian Symposium on Programming Language and Systems, pp. 437–452 (2004)

    Google Scholar 

  24. Hertz, M., Feng, Y., Berger, E.D.: Garbage collection without paging. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 143–153 (2005)

    Google Scholar 

  25. Yang, T., Berger, E.D., Kaplan, S.F.: CRAMM: virtual memory support for garbage-collected applications. In: Symposium on Operating Systems Design and Implementation, pp. 103–116 (2006)

    Google Scholar 

  26. Wilson, P.R., Lam, M.S., Moher, T.G.: Effective ”Static-graph” Reorganization to Improve Locality in Garbage-Collected Systems. ACM SIGPLAN Notices 26(6), 177–191 (1991)

    Article  Google Scholar 

  27. Spoonhower, D., Blelloch, G., Harper, R.: Using Page Residency to Balance Tradeoffs in Tracing Garbage Collection. In: ACM/USENIX International Conference on Virtual Execution Environments, pp. 57–67 (2005)

    Google Scholar 

  28. Shuf, Y., Gupta, M., Bordawekar, R., Singh, J.R.: Exploiting Prolific Types for Memory Management and Optimizations. In: ACM Symposium on Principles of Programming Languages, pp. 295–306 (2002)

    Google Scholar 

  29. The Ubuntu Operating System, http://www.ubuntu.com

  30. The Java Hotspot Virtual Machine, White Paper, http://java.sun.com/products/hotspot/index.html

  31. The SPEC Java Virtual Machine Benchmarks, http://spec.org/jvm98

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Tong, L., Lau, F.C.M. (2010). Index-Compact Garbage Collection. In: Ueda, K. (eds) Programming Languages and Systems. APLAS 2010. Lecture Notes in Computer Science, vol 6461. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-17164-2_19

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-17164-2_19

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-17163-5

  • Online ISBN: 978-3-642-17164-2

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics