Nothing Special   »   [go: up one dir, main page]

skip to main content
10.1145/512429.512435acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
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
  • (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
  • Show More Cited By

Index Terms

  1. Understanding the connectivity of heap objects

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    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
    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]

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 20 June 2002

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. connectivity based garbage collection
    2. object lifetimes

    Qualifiers

    • Article

    Conference

    ISMM02
    Sponsor:

    Acceptance Rates

    ISMM '02 Paper Acceptance Rate 17 of 41 submissions, 41%;
    Overall Acceptance Rate 72 of 156 submissions, 46%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)8
    • Downloads (Last 6 weeks)1
    Reflects downloads up to 13 Nov 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (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
    • (2011)Region-Based Memory Management: An Evaluation of Its Support in RTSJDistributed, Embedded and Real-time Java Systems10.1007/978-1-4419-8158-5_5(101-127)Online publication date: 31-Dec-2011
    • (2011)Handling Non-Periodic Events in Real-Time Java SystemsDistributed, Embedded and Real-time Java Systems10.1007/978-1-4419-8158-5_3(45-77)Online publication date: 31-Dec-2011
    • Show More Cited By

    View Options

    Get Access

    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