Using lifetime predictors to improve memory allocation performance
- 1 June 1993
- journal article
- Published by Association for Computing Machinery (ACM) in ACM SIGPLAN Notices
- Vol. 28 (6), 187-196
- https://doi.org/10.1145/173262.155108
Abstract
Dynamic storage allocation is used heavily in many application areas including interpreters, simulators, optimizers, and translators. We describe research that can improve all aspects of the performance of dynamic storage allocation by predicting the lifetimes of short-lived objects when they are allocated. Using five significant, allocation-intensive C programs, we show that a great fraction of all bytes allocated are short-lived (> 90% in all cases). Furthermore, we describe an algorithm for liftetime prediction that accurately predicts the lifetimes of 42–99% of all objects allocated. We describe and simulate a storage allocator that takes adavantage of lifetime prediction of short-lived objects and show that it can significantly improve a program's memory overhead and reference locality, and even, at times, improve CPU performance as well.Keywords
This publication has 18 references indexed in Scilit:
- The measured cost of conservative garbage collectionSoftware: Practice and Experience, 1993
- Empirical measurements of six allocation-intensive C programsACM SIGPLAN Notices, 1992
- Compiler support for garbage collection in a statically typed languageACM SIGPLAN Notices, 1992
- An adaptive tenuring policy for generation scavengersACM Transactions on Programming Languages and Systems, 1992
- Abstract execution: A technique for efficiently tracing programsSoftware: Practice and Experience, 1990
- Fast allocation and deallocation of memory based on object lifetimesSoftware: Practice and Experience, 1990
- Opportunistic garbage collectionACM SIGPLAN Notices, 1988
- The P 2 algorithm for dynamic calculation of quantiles and histograms without storing observationsCommunications of the ACM, 1985
- An execution profiler for modular programsSoftware: Practice and Experience, 1983
- A real-time garbage collector based on the lifetimes of objectsCommunications of the ACM, 1983