skip to main content
research-article

Optimizations in a private nursery-based garbage collector

Published:05 June 2010Publication History
Skip Abstract Section

Abstract

This paper describes a garbage collector designed around the use of permanent, private, thread-local nurseries and is principally oriented towards functional languages. We try to maximize the cache hit rate by having threads continually reuse their individual private nurseries. These private nurseries operate in such a way that they can be garbage collected independently of other threads, which creates low collection pause times. Objects which survive thread-local collections are moved to a mature generation that can be collected either concurrently or in a stop-the-world fashion. We describe several optimizations (including two dynamic control parameter adaptation schemes) related to garbage collecting the private nurseries and to our concurrent collector, some of which are made possible when the language provides mutability information. We tested our collector against six benchmarks and saw single-threaded performance improvements in the range of 5-74%. We also saw a 10x increase (for 24 processors) in scalability for one parallel benchmark that had previously been memory-bound.

References

  1. Intel VTune Performance Analyzer. Online http://www.intel.com/software/products/vtune/index.htm.Google ScholarGoogle Scholar
  2. Java HotSpot Virtual Machine Performance Enhancements JDK 7. Online http://download.java.net/jdk7/docs/technotes/guides/vm/performance-enhancements-7.html.Google ScholarGoogle Scholar
  3. A. W. Appel. Simple generational garbage collection and fast allocation, 1988.Google ScholarGoogle Scholar
  4. D. F. Bacon, C. R. Attanasio, H. B. Lee, V. Rajan, and S. Smith. Java without the coffee breaks: A nonintrusive multiprocessor garbage collector. In In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI) (Snowbird, pages 92--103. ACM Press, 2001. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. P. Cheng, R. Harper, and P. Lee. Generational stack collection and profile-driven pretenuring. In PLDI, pages 162--173, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. E. W. Dijkstra, L. Lamport, A. J. Martin, C. S. Sholten, and E. F. M. Steffens. On-the-fly garbage collection: an exercise in cooperation. In Communications of the ACM, pages 966--975, 1978. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Doligez and G. Gonthier. Portable, unobtrusive garbage collection for multiprocessor systems. In POPL, pages 70--83, 1994. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. D. Doligez and X. Leroy. A concurrent, generational garbage collector for a multithreaded implementation of ML. In POPL, pages 113--123, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. T. Domani, G. Goldshtein, E. K. Kolodner, E. Lewis, E. Petrank, and D. Sheinwald. Thread-local heaps for Java. In ISMM '02: Proceedings of the 3rd international symposium on Memory management, pages 76--87, New York, NY, USA, 2002. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. T. Domani, E. K. Kolodner, and E. Petrank. A generational on-the-fly garbage collector for Java. SIGPLAN Not., 35(5):274--284, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. M. Fluet, N. Ford, M. Rainey, J. Reppy, A. Shaw, and Y. Xiao. Status report: the manticore project. In ML '07: Proceedings of the 2007 workshop on Workshop on ML, New York, NY, USA, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. X. Guan, W. Srisa-an, and C. Jia. Investigating the effects of using different nursery sizing policies on performance. In ISMM '09: Proceedings of the 2009 international symposium on Memory management, pages 59--68, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. Hudson, J. Moss, A. Diwan, and C. Weight. A language-independent garbage collector toolkit. Technical Report UM-CS-1991-047, University of Massachusetts, 1991. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. R. Hudson, J. Moss, S. Subramoney, and W. Washburn. Cycles to recycle: garbage collection to the ia--64. In ISMM 2000, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. G. Kliot, E. Petrank, and B. Steensgaard. A lock-free, concurrent, and incremental stack scanning for garbage collectors. In VEE '09: Proceedings of the 2009 ACM SIGPLAN/SIGOPS international conference on Virtual execution environments, pages 11--20, New York, NY, USA, 2009. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. B. Steensgaard. Thread-specific heaps for multi-threaded programs. In ISMM, pages 18--24, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. M. Velasco, A. Ortiz, K. Olcoz, and F. Tirado. Dynamic management of nursery space organization in generational collection. Interaction between Compilers and Computer Architecture, Annual Workshop on, 0:33--40, 2004.Google ScholarGoogle Scholar
  18. T. Yang, E. Berger, M. Hertz, S. Kaplan, and J. Moss. Automatic heap sizing: Taking real memory into account, 2004.Google ScholarGoogle Scholar
  19. T. Yuasa, Y. Nakagawa, T. Komiya, and M. Yasugi. Return barrier. In International Lisp Conference, 2002.Google ScholarGoogle Scholar

Index Terms

  1. Optimizations in a private nursery-based garbage collector

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    • Published in

      cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 45, Issue 8
      ISMM '10
      August 2010
      129 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/1837855
      Issue’s Table of Contents
      • cover image ACM Conferences
        ISMM '10: Proceedings of the 2010 international symposium on Memory management
        June 2010
        140 pages
        ISBN:9781450300544
        DOI:10.1145/1806651
        • General Chair:
        • Jan Vitek,
        • Program Chair:
        • Doug Lea

      Copyright © 2010 ACM

      Publisher

      Association for Computing Machinery

      New York, NY, United States

      Publication History

      • Published: 5 June 2010

      Check for updates

      Qualifiers

      • research-article

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!