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

Understanding the connectivity of heap objects

Published: 20 June 2002 Publication 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]]
[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]]
[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]]
[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]]
[5]
H. Boehm, A. Demers, and M. Weiser. A garbage collector for C and C++. http://www.hpl.hp.com/personal/Hans_Boehm/gc/]]
[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]]
[7]
B. Cahoon. Java-Olden benchmarks. http://www-ali.cs.umass.edu/~cahoon/olden]]
[8]
D. Cannarozzi, M. Plezbert, and R. Cytron. Contaminated garbage collection. In Programming Languages Design and Implementation (PLDI), 2000]]
[9]
C. J. Cheney. A non-recursive list compaction algorithm. Communications of the ACM (CACM), November 1970]]
[10]
P. Cheng, R. Harper, and P. Lee. Generational stack collection and profile-driven pretenuring. In Programming Languages Design and Implementation (PLDI), 1998]]
[11]
T. Chilimbi and J. Larus. Using generational garbage collection to implement cache-conscious data placement. In International Symposium on Memory Management (ISMM), 1998]]
[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]]
[13]
T. Cormen, C. Leiserson, and R. Rivest. Introduction to Algorithms. MIT press, 1990]]
[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]]
[15]
J. Dolby and A. Chien. An automatic object inlining optimization and its evaluation. In Programming Languages Design and Implementation (PLDI), 2000]]
[16]
R. Fitzgerald and D. Tarditi. The case for profile-directed selection of garbage collectors. In International Symposium on Memory Management (ISMM), 2000]]
[17]
D. Gay and A. Aiken. Memory management with explicit regions. In Programming Languages Design and Implementation (PLDI), 1998]]
[18]
D. Gay and B. Steensgaard. Fast escape analysis and stack allocation for object-based programs. In Compiler Construction (CC), 2000]]
[19]
T. Harris. Early storage reclamation in a tracing garbage collector. ACM SIGPLAN Notices, April 1999]]
[20]
T. Harris. Dynamic adaptive pre-tenuring. In International Symposium on Memory Management (ISMM), 2000]]
[21]
B. Hayes. Using key object opportunism to collect old objects. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 1991]]
[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]]
[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]]
[24]
R. Hudson and E. Moss. Incremental collection of mature objects. In International Workshop on Memory Management, St. Malo, France, September 1992]]
[25]
R. Jones and R. Lins. Garbage collection: Algorithms for automatic dynamic memory management. John Wiley & Son Ltd., 1996]]
[26]
H. Lieberman and C. Hewitt. A real-time garbage collector based on the lifetime of objects. Communications of the ACM (CACM), 1983]]
[27]
D. Moon. Garbage collection in a large Lisp system. In Lisp and functional programming, 1984]]
[28]
E. Ruf. Effective synchronization removal for Java. In Programming Languages Design and Implementation (PLDI), 2000]]
[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]]
[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]]
[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]]
[32]
Standard Performance Evaluation Corporation (SPEC). SPECjvm98 benchmarks. http://www.specbench.org/osg/jvm98]]
[33]
B. Steensgaard. Thread-specific heaps for multi-threaded programs. In International Symposium on Memory Management (ISMM), 2000]]
[34]
D. Stefanovic, K. McKinley, and E. Moss. Age-based garbage collection. In Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA), 1999]]
[35]
D. Stefanovic and E. Moss. Characterization of object behaviour in Standard ML of New Jersey. In Lisp and functional programming, 1994]]
[36]
A. Svalcianu and M. Rinard. Pointer and escape analysis for multithreaded programs. In Principles and Practice of Parallel Programming (PPOPP), 2001]]
[37]
D. Tarditi and A. Diwan. Measuring the cost of storage management. Lisp and symbolic computation, 1996]]
[38]
M. Tofte. A brief introduction to regions. In International Symposium on Memory Management (ISMM), 1998]]
[39]
D. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In Practical Software Development Environments, 1984]]
[40]
D. Ungar and F. Jackson. An adaptive tenuring policy for generation scavengers. Transactions on Programming Languages and Systems (TOPLAS), 1992]]
[41]
F. Vivien and M. Rinard. Incrementalized pointer and escape analysis. In Programming Languages Design and Implementation (PLDI), 2001]]
[42]
P. Wilson. Uniprocessor garbage collection techniques. Accepted for publication in ACM Computing Surveys]]
[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]]

Cited By

View all
  • (2007)Fast online pointer analysisACM Transactions on Programming Languages and Systems10.1145/1216374.121637929:2(11-es)Online publication date: 1-Apr-2007
  • (2007)Semi-Automatic Region-Based Memory Management for Real-Time Java Embedded SystemsProceedings of the 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications10.1109/RTCSA.2007.67(73-80)Online publication date: 21-Aug-2007
  • (2024)Reference Counting Deeply Immutable Data Structures with Cycles: An Intellectual AbstractProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665507(131-141)Online publication date: 20-Jun-2024
  • Show More Cited By

Index Terms

  1. Understanding the connectivity of heap objects

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    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
    • 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
    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
    Published in SIGPLAN Volume 38, Issue 2 supplement

    Check for updates

    Author Tags

    1. connectivity based garbage collection
    2. object lifetimes

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)8
    • Downloads (Last 6 weeks)2
    Reflects downloads up to 25 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2007)Fast online pointer analysisACM Transactions on Programming Languages and Systems10.1145/1216374.121637929:2(11-es)Online publication date: 1-Apr-2007
    • (2007)Semi-Automatic Region-Based Memory Management for Real-Time Java Embedded SystemsProceedings of the 13th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications10.1109/RTCSA.2007.67(73-80)Online publication date: 21-Aug-2007
    • (2024)Reference Counting Deeply Immutable Data Structures with Cycles: An Intellectual AbstractProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665507(131-141)Online publication date: 20-Jun-2024
    • (2017)Garbology: a study of how Java objects dieProceedings of the 2017 ACM SIGPLAN International Symposium on New Ideas, New Paradigms, and Reflections on Programming and Software10.1145/3133850.3133854(168-179)Online publication date: 25-Oct-2017
    • (2016)Thinking Inside the BoxACM Transactions on Programming Languages and Systems10.1145/286657638:3(1-37)Online publication date: 8-Apr-2016
    • (2015)Topology-Aware Parallelism for NUMA Copying CollectorsRevised Selected Papers of the 28th International Workshop on Languages and Compilers for Parallel Computing - Volume 951910.1007/978-3-319-29778-1_12(191-205)Online publication date: 9-Sep-2015
    • (2014)A study of connected object locality in NUMA heapsProceedings of the workshop on Memory Systems Performance and Correctness10.1145/2618128.2618132(1-9)Online publication date: 13-Jun-2014
    • (2013)Collecting a heap of shapesProceedings of the 2013 International Symposium on Software Testing and Analysis10.1145/2483760.2483761(123-133)Online publication date: 15-Jul-2013
    • (2011)Compartmental memory management in a modern web browserACM SIGPLAN Notices10.1145/2076022.199349646:11(119-128)Online publication date: 4-Jun-2011
    • (2011)Compartmental memory management in a modern web browserProceedings of the international symposium on Memory management10.1145/1993478.1993496(119-128)Online publication date: 4-Jun-2011
    • 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

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media