Previous research efforts have shown that pretenuring can potentially reduce the copying cost by creating long lived objects into the mature memory regions directly. To date, researchers often employ profiling and static analysis to accurately select the objects that should be pretenured. However, little research efforts have been spent on dynamic approaches for pretenuring objects. In this paper, we propose a novel approach that dynamically predicts object lifespan to assist with pretenuring selection. The proposed scheme performs dynamic pretenuring selection based on a feedback mechanism that records lifespan of objects from each class during garbage collection invocations. This information is then used to pretenure objects in subsequent allocation requests. We experiment with two approaches, jumpstart feedback and continuous feedback, to collect tenuring information. The experimental results of selected benchmark programs show that our schemes can improve the garbage collection time of IBM's Jikes RVM by up to 37%, and improve the overall execution time by up to 28%.
[1]
Andrew W. Appel,et al.
Simple generational garbage collection and fast allocation
,
1989,
Softw. Pract. Exp..
[2]
Timothy L. Harris,et al.
Dynamic adaptive pre-tenuring
,
2000,
ISMM '00.
[3]
Matthew L. Seidl,et al.
Segregating heap objects by reference behavior and lifetime
,
1998,
ASPLOS VIII.
[4]
Witawas Srisa-an,et al.
Java virtual machine timing probes: a study of object life span and garbage collection
,
2002,
Conference Proceedings of the IEEE International Performance, Computing, and Communications Conference (Cat. No.02CH37326).
[5]
Benjamin G. Zorn,et al.
Using lifetime predictors to improve memory allocation performance
,
1993,
PLDI '93.
[6]
Peter Lee,et al.
Generational stack collection and profile-driven pretenuring
,
1998,
PLDI.
[7]
Kathryn S. McKinley,et al.
Pretenuring for Java
,
2001,
OOPSLA '01.