skip to main content
10.1145/1852761.1852767acmotherconferencesArticle/Chapter ViewAbstractPublication PagespppjConference Proceedingsconference-collections
research-article

Headroom-based pretenuring: dynamically pretenuring objects that live "long enough"

Published: 15 September 2010 Publication History

Abstract

Many modern garbage collectors are generational, operating under the assumption that "most objects die young." Such collectors allocate all objects in a frequently collected nursery and tenure only surviving objects to a less-frequently collected, older generation. But these survivors induce copying costs upon tenuring. To avoid these costs, pretenuring schemes construct classifiers to predict whether an object will be long-lived or short-lived; accordingly, it is tenured or not immediately upon allocation. Up to now, however, these predictions did not account for one important fact: the proximity of the next collection. In contrast, headroom-based pretenuring does take this into account; thus, it can dynamically pretenure objects whenever they live "long enough."
We devised two ways to estimate an object's lifetime from garbage collection traces. This led to two headroom-based pre-tenuring schemes, which we implemented on top of Jikes RVM and MMTk. Our experiments show that the dynamic, headroom-based pretenuring schemes outperform static schemes in terms of collector performance, albeit at the cost of increased mutator overhead.

References

[1]
}}O. Agesen and A. Garthwaite. Efficient object sampling via weak references. In ISMM '00: Proceedings of the 2nd International Symposium on Memory Management, pages 121--126, 2000.
[2]
}}B. Alpern, C. R. Attanasio, A. Cocchi, D. Lieber, S. Smith, T. Ngo, J. J. Barton, S. F. Hummel, J. C. Sheperd, and M. Mergen. Implementing Jalapeño in Java. In OOPSLA '99: Proceedings of the 14th Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 314--324, 1999.
[3]
}}A. W. Appel. Simple generational garbage collection and fast allocation. Software---Practice & Experience, 19(2):171--183, 1989.
[4]
}}D. F. Bacon, S. J. Fink, and D. Grove. Space- and time-efficient implementation of the Java object model. In ECOOP '02: Proceedings of the 16th European Conference on Object-Oriented Programming, pages 111--132, 2002.
[5]
}}D. A. Barrett and B. G. Zorn. Using lifetime predictors to improve memory allocation performance. In PLDI '93: Proceedings of the 1993 Conference on Programming Language Design and Implementation, pages 187--196, 1993.
[6]
}}S. M. Blackburn and K. S. McKinley. Immix: a mark-region garbage collector with space efficiency, fast collection, and mutator performance. In PLDI '08: Proceedings of the 2008 Conference on Programming Language Design and Implementation, pages 22--32, 2008.
[7]
}}S. M. Blackburn, S. Singhai, M. Hertz, K. S. McKinely, and J. E. B. Moss. Pretenuring for Java. In OOPSLA '01: Proceedings of the 16th Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 342--352, 2001.
[8]
}}S. M. Blackburn, P. Cheng, and K. S. McKinley. Oil and water? high performance garbage collection in Java with MMTk. In ICSE '04: Proceedings of the 26th International Conference on Software Engineering, pages 137--146, 2004.
[9]
}}S. M. Blackburn, P. Cheng, and K. S. McKinley. Myths and realities: the performance impact of garbage collection. In SIGMETRICS '04/Performance '04, pages 25--36, 2004.
[10]
}}S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, B. Moss, A. Phansalkar, D. Stefanović, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In OOPSLA '06: Proceedings of the 21st Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 169--190, 2006.
[11]
}}S. M. Blackburn, M. Hertz, K. S. Mckinley, J. E. B. Moss, and T. Yang. Profile-based pretenuring. ACM Transactions on Programming Languages and Systems, 29(1):2, 2007.
[12]
}}P. Cheng, R. Harper, and P. Lee. Generational stack collection and profile-driven pretenuring. In PLDI '98: Proceedings of the 1998 Conference on Programming Language Design and Implementation, pages 162--173, 1998.
[13]
}}S. Z. Guyer and K. S. McKinley. Finding your cronies: static analysis for dynamic object colocation. In OOPSLA '04: Proceedings of the 19th Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 237--250, 2004.
[14]
}}T. L. Harris. Dynamic adaptive pre-tenuring. In ISMM '00: Proceedings of the 2nd International Symposium on Memory Management, pages 127--136, 2000.
[15]
}}L. Hellyer, R. Jones, and A. L. Hosking. The locality of concurrent write barriers. Technical Report 3--10, University of Kent, 2010.
[16]
}}M. Hertz, S. M. Blackburn, J. E. Moss, K. S. McKinley, and D. Stefanović. Generating object lifetime traces with Merlin. ACM Transactions on Programming Languages and Systems, 28(3):476--516, 2006.
[17]
}}W. Huang, W. Srisa-an, and J. M. Chang. Dynamic pretenuring schemes for generational garbage collection. In ISPASS '04: Proceedings of the 2004 International Symposium on Performance Analysis of Systems and Software, pages 133--140, 2004.
[18]
}}X. Huang, S. M. Blackburn, K. S. McKinley, J. E. B. Moss, Z. Wang, and P. Cheng. The garbage collection advantage: improving program locality. In OOPSLA '04: Proceedings of the 19th Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 69--80, 2004.
[19]
}}H. Inoue, D. Stefanovic, and S. Forrest. On the prediction of Java object lifetimes. IEEE Transactions on Computers, 55(7), 2006.
[20]
}}R. E. Jones and C. Ryder. A study of Java object demographics. In ISMM '08: Proceedings of the 7th International Symposium on Memory Management, pages 121--130, 2008.
[21]
}}M. Jump and B. Hardekopf. Pretenuring based on escape analysis. Technical Report 03--48, University of Texas at Austin, 2003.
[22]
}}M. Jump, S. M. Blackburn, and K. S. McKinley. Dynamic object sampling for pretenuring. In ISMM '04: Proceedings of the 4th International Symposium on Memory Management, pages 152--162, 2004.
[23]
}}S. Marion, R. Jones, and C. Ryder. Decrypting the Java gene pool. In ISMM '07: Proceedings of the 6th International Symposium on Memory Management, pages 67--78, 2007.
[24]
}}J. Singer, G. Brown, M. Luján, and I. Watson. Towards intelligent analysis techniques for object pretenuring. In PPPJ '07: Proceedings of the 5th International Symposium on Principles and Practice of Programming in Java, pages 203--208, 2007.
[25]
}}SPEC JVM98 Benchmarks. Standard Performance Evaluation Corporation, 1998. http://www.spec.org/jvm98/.
[26]
}}D. Stefanović, K. S. McKinley, and J. E. B. Moss. Age-based garbage collection. In OOPSLA '99: Proceedings of the 14th Conference on Object-Oriented Programming, Systems, Languages, and Applications, pages 370--381, 1999.
[27]
}}D. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In SDE 1: Proceedings of the 1st ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, pages 157--167, 1984.
[28]
}}D. Ungar and F. Jackson. An adaptive tenuring policy for generation scavengers. ACM Transactions on Programming Languages and Systems, 14(1):1--27, 1992.
[29]
}}P. R. Wilson and T. G. Moher. Design of the opportunistic garbage collector. SIGPLAN Notices, 24(10):23--35, 1989.

Cited By

View all
  • (2024)Garbage Collection for Mostly Serialized HeapsProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665512(1-14)Online publication date: 20-Jun-2024
  • (2019)Runtime Object Lifetime Profiler for Latency Sensitive Big Data ApplicationsProceedings of the Fourteenth EuroSys Conference 201910.1145/3302424.3303988(1-16)Online publication date: 25-Mar-2019
  • (2018)A low-overhead and efficient Java object profiler on ART virtual machineJournal of Intelligent & Fuzzy Systems10.3233/JIFS-16965535:3(2997-3009)Online publication date: 1-Oct-2018
  • Show More Cited By

Index Terms

  1. Headroom-based pretenuring: dynamically pretenuring objects that live "long enough"

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Other conferences
PPPJ '10: Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java
September 2010
173 pages
ISBN:9781450302692
DOI:10.1145/1852761
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

  • Technical University of Vienna

In-Cooperation

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 15 September 2010

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. dynamic pre-tenuring
  2. generational garbage collection
  3. headroom
  4. lifetime estimation
  5. measurement
  6. performance

Qualifiers

  • Research-article

Conference

PPPJ '10
Sponsor:
PPPJ '10: Principles and Practice of Programming in Java
September 15 - 17, 2010
Vienna, Austria

Acceptance Rates

Overall Acceptance Rate 29 of 58 submissions, 50%

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 27 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2024)Garbage Collection for Mostly Serialized HeapsProceedings of the 2024 ACM SIGPLAN International Symposium on Memory Management10.1145/3652024.3665512(1-14)Online publication date: 20-Jun-2024
  • (2019)Runtime Object Lifetime Profiler for Latency Sensitive Big Data ApplicationsProceedings of the Fourteenth EuroSys Conference 201910.1145/3302424.3303988(1-16)Online publication date: 25-Mar-2019
  • (2018)A low-overhead and efficient Java object profiler on ART virtual machineJournal of Intelligent & Fuzzy Systems10.3233/JIFS-16965535:3(2997-3009)Online publication date: 1-Oct-2018
  • (2015)LeakTracer: Tracing leaks along the way2015 IEEE 15th International Working Conference on Source Code Analysis and Manipulation (SCAM)10.1109/SCAM.2015.7335414(181-190)Online publication date: Sep-2015
  • (2013)ResurrectorACM SIGPLAN Notices10.1145/2544173.250951248:10(111-130)Online publication date: 29-Oct-2013
  • (2013)ResurrectorProceedings of the 2013 ACM SIGPLAN international conference on Object oriented programming systems languages & applications10.1145/2509136.2509512(111-130)Online publication date: 29-Oct-2013

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media