Skip to main content
Article thumbnail
Location of Repository

An Information Theoretic Evaluation of Software Metrics for Object Lifetime Prediction

By Jeremy Singer, Sebastien Marion, Gavin D. Brown, Richard E. Jones, Mikel Lujan, Chris Ryder and Ian Watson


Accurate object lifetime prediction can be exploited by allocators to improve the performance of generational garbage collection by placing immortal or long-lived objects directly into immortal or old generations. Object-oriented software metrics are emerging as viable indicators for object lifetime prediction. This paper studies the correlation of various metrics with object lifetimes. However, to date most studies have been empirical and have not provided any information theoretic underpinning. We use the information theoretic calculation of normalized mutual information to measure correlation. We assess which metrics are most useful for prediction and construct some simple yet accurate object lifetime predictors

Topics: QA76
Year: 2008
OAI identifier:

Suggested articles


  1. (1994). A metrics suite for object oriented design. doi
  2. (1983). A real-time garbage collector based on the lifetimes of objects. doi
  3. (1992). An adaptive tenuring policy for generation scavengers. doi
  4. (1993). B.G.: Using lifetime predictors to improve memory allocation performance. In: doi
  5. (1998). C.F.: Managerial use of metrics for objectoriented software: An exploratory analysis. doi
  6. (2005). ckjm—Chidamber and Kemerer Java metrics
  7. (2007). Decrypting the Java gene pool: Predicting objects’ lifetimes with micro-patterns. In: doi
  8. (2007). Dynamic memory management: Challenges for today and tomorrow. In:
  9. (2004). Dynamic pretenuring schemes for generational garbage collection. In: doi
  10. (2005). E.: Data Mining: Practical machine learning tools and techniques. 2nd edn. doi
  11. (2000). et al.: The Jalape˜ no virtual machine.
  12. (2000). et al.: The Jalapen˜o virtual machine.
  13. (2004). Fast binary feature selection with conditional mutual information.
  14. (1996). Garbage Collection: Algorithms for Automatic Dynamic Memory Management. doi
  15. (1984). Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In: doi
  16. (1998). Generational stack collection and profile-driven pretenuring. In: PLDI. doi
  17. (2005). I.: Micro patterns in Java code. doi
  18. (1993). Infant mortality and generational garbage collection. doi
  19. (2001). J.E.B.: Pretenuring for Java. In: OOPSLA. doi
  20. (2002). J.P.: Exploiting prolific types for memory management and optimizations. In: POPL. doi
  21. (2006). Java technology, IBM style: Garbage collection policies
  22. (2006). On the prediction of Java object lifetimes. doi
  23. (2007). Pattern Recognition and Machine Learning. doi
  24. (2007). Profile-based pretenuring. doi
  25. (2006). The DaCapo benchmarks: Java benchmarking development and analysis. In: doi
  26. (2001). The Java HotSpot Virtual Machine doi
  27. (2005). The Jikes research virtual machine project: Building an open source research community. doi
  28. (2007). Towards intelligent analysis techniques for object pretenuring. In: doi

To submit an update or takedown request for this paper, please submit an Update/Correction/Removal Request.