skip to main content
10.1145/512429.512435acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
Article

Understanding the connectivity of heap objects

Published:20 June 2002Publication History

ABSTRACT

Modern garbage collectors partition the set of heap objects to achieve the best performance. For example, generational garbage collectors partition objects by age and focus their efforts on the youngest objects. Partitioning by age works well for many programs because younger objects usually have short lifetimes and thus garbage collection of young objects is often able to free up many objects. However, generational garbage collectors are typically much less efficient for longer-lived objects, and thus prior work has proposed many enhancements to generational collection.Our work explores whether the connectivity of objects can yield useful partitions or improve existing partitioning schemes. We look at both direct (e.g., object A points to object B) and transitive (e.g., object A is reachable from object B) connectivity. Our results indicate that connectivity correlates strongly with object lifetimes and deathtimes and is therefore likely to be useful for partitioning objects.

References

  1. 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, and J. Whaley. The Jalapeno virtual machine. IBM Systems Journal, 39(1), 2000]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. B. Alpern, C. R. Attanasio, J. J. Barton, A. Cocchi, S. F. Hummel, D. Lieber, T. Ngo, M. Mergen, J. C. Shepherd, and S. Smith. Implementing Jalapeno in Java. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 1999]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. H. G. Baker, Jr. The Treadmill: Real-time garbage collection without motion sickness. In OOPSLA '91 Workshop on Garbage Collection in Object-Oriented Systems, 1991. Also appeared in SIGPLAN Notices, March 1992]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. S. Blackburn, S. Singhai, M. Hertz, K. S. McKinley, and J. E. B. Moss. Pretenuring for Java. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 2001]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. H. Boehm, A. Demers, and M. Weiser. A garbage collector for C and C++. http://www.hpl.hp.com/personal/Hans_Boehm/gc/]]Google ScholarGoogle Scholar
  6. M. Burke, J.-D. Choi, S. Fink, D. Grove, M. Hind, V. Sarkar, M. Serrano, V. C. Sreedhar, and H. Srinivasan. The Jalapeno dynamic optimizing compiler for Java. In ACM Java Grande Conference, San Francisco, CA, June 1999]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. B. Cahoon. Java-Olden benchmarks. http://www-ali.cs.umass.edu/~cahoon/olden]]Google ScholarGoogle Scholar
  8. D. Cannarozzi, M. Plezbert, and R. Cytron. Contaminated garbage collection. In Programming Languages Design and Implementation (PLDI), 2000]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. C. J. Cheney. A non-recursive list compaction algorithm. Communications of the ACM (CACM), November 1970]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. P. Cheng, R. Harper, and P. Lee. Generational stack collection and profile-driven pretenuring. In Programming Languages Design and Implementation (PLDI), 1998]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. T. Chilimbi and J. Larus. Using generational garbage collection to implement cache-conscious data placement. In International Symposium on Memory Management (ISMM), 1998]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. J.-D. Choi, M. Gupta, M. Serrano, V. C. Sreedhar, and S. Midkiff. Escape analysis for Java. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 1999]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. T. Cormen, C. Leiserson, and R. Rivest. Introduction to Algorithms. MIT press, 1990]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. S. Dieckmann and U. Holzle. A study of allocation behavior of the SPECjvm98 Java benchmarks. In European Conference for Object-Oriented Programming (ECOOP), 1999]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. J. Dolby and A. Chien. An automatic object inlining optimization and its evaluation. In Programming Languages Design and Implementation (PLDI), 2000]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. R. Fitzgerald and D. Tarditi. The case for profile-directed selection of garbage collectors. In International Symposium on Memory Management (ISMM), 2000]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. D. Gay and A. Aiken. Memory management with explicit regions. In Programming Languages Design and Implementation (PLDI), 1998]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. D. Gay and B. Steensgaard. Fast escape analysis and stack allocation for object-based programs. In Compiler Construction (CC), 2000]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. T. Harris. Early storage reclamation in a tracing garbage collector. ACM SIGPLAN Notices, April 1999]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. T. Harris. Dynamic adaptive pre-tenuring. In International Symposium on Memory Management (ISMM), 2000]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. B. Hayes. Using key object opportunism to collect old objects. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 1991]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. M. Hertz, S. M. Blackburn, J. E. B. Moss, K. S. McKinley, and D. Stefanovic. Error-free garbage collection traces: How to cheat and not get caught. In ACM SIGMETRICS, 2002]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. M. Hirzel, A. Diwan, and A. Hosking. On the usefulness of liveness for garbage collection and leak detection. In European Conference for Object-Oriented Programming (ECOOP), 2001]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. R. Hudson and E. Moss. Incremental collection of mature objects. In International Workshop on Memory Management, St. Malo, France, September 1992]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. R. Jones and R. Lins. Garbage collection: Algorithms for automatic dynamic memory management. John Wiley & Son Ltd., 1996]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. H. Lieberman and C. Hewitt. A real-time garbage collector based on the lifetime of objects. Communications of the ACM (CACM), 1983]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. D. Moon. Garbage collection in a large Lisp system. In Lisp and functional programming, 1984]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. E. Ruf. Effective synchronization removal for Java. In Programming Languages Design and Implementation (PLDI), 2000]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. M. Seidl and B. Zorn. Segregating heap objects by reference behavior and lifetime. In Architectural Support for Programming Languages and Operating Systems (ASPLOS), 1998]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Y. Shuf, M. Gupta, R. Bordawekar, and J. P. Singh. Exploiting prolific types for memory management and optimizations. In Principles of Programming Languages (POPL), 2002]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Y. Shuf, M. J. Serrano, M. Gupta, and J. P. Singh. Characterizing the memory behavior of Java workloads: A structured view and opportunities for optimizations. In SIGMETRICS, 2001]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Standard Performance Evaluation Corporation (SPEC). SPECjvm98 benchmarks. http://www.specbench.org/osg/jvm98]]Google ScholarGoogle Scholar
  33. B. Steensgaard. Thread-specific heaps for multi-threaded programs. In International Symposium on Memory Management (ISMM), 2000]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. D. Stefanovic, K. McKinley, and E. Moss. Age-based garbage collection. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 1999]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  35. D. Stefanovic and E. Moss. Characterization of object behaviour in Standard ML of New Jersey. In Lisp and functional programming, 1994]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  36. A. Svalcianu and M. Rinard. Pointer and escape analysis for multithreaded programs. In Principles and Practice of Parallel Programming (PPOPP), 2001]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  37. D. Tarditi and A. Diwan. Measuring the cost of storage management. Lisp and symbolic computation, 1996]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. M. Tofte. A brief introduction to regions. In International Symposium on Memory Management (ISMM), 1998]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  39. D. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In Practical Software Development Environments, 1984]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  40. D. Ungar and F. Jackson. An adaptive tenuring policy for generation scavengers. Transactions on Programming Languages and Systems (TOPLAS), 1992]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. F. Vivien and M. Rinard. Incrementalized pointer and escape analysis. In Programming Languages Design and Implementation (PLDI), 2001]] Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. P. Wilson. Uniprocessor garbage collection techniques. Accepted for publication in ACM Computing Surveys]]Google ScholarGoogle Scholar
  43. P. R. Wilson, M. S. Lam, and T. G. Moher. Effective "static-graph" reorganization to improve locality in garbage collected systems. In Programming Languages Design and Implementation (PLDI), pages 177--191, Toronto, Canada, 1991]] Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Understanding the connectivity of heap objects

    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
    • Published in

      cover image ACM Conferences
      ISMM '02: Proceedings of the 3rd international symposium on Memory management
      June 2002
      192 pages
      ISBN:1581135394
      DOI:10.1145/512429
      • cover image ACM SIGPLAN Notices
        ACM SIGPLAN Notices  Volume 38, Issue 2 supplement
        MSP 2002 and ISMM 2002
        February 2003
        291 pages
        ISSN:0362-1340
        EISSN:1558-1160
        DOI:10.1145/773039
        Issue’s Table of Contents

      Copyright © 2002 ACM

      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: 20 June 2002

      Permissions

      Request permissions about this article.

      Request Permissions

      Check for updates

      Qualifiers

      • Article

      Acceptance Rates

      ISMM '02 Paper Acceptance Rate17of41submissions,41%Overall Acceptance Rate72of156submissions,46%

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader