Dynamic storage allocation has become increasingly important in many a
pplications, in part due to the use of the object-oriented paradigm. A
t the same time, processor speeds are increasing faster than memory sp
eeds and programs are increasing in size faster than memories. In this
paper, we investigate efforts to predict heap object reference and li
fetime behavior at the time objects are allocated. Our approach uses p
rofile-based optimization, and considers a variety of different inform
ation sources present at the time of object allocation to predict the
object's reference frequency and Lifetime. Our results, based on measu
rements of six allocation intensive programs, show that program refere
nces to heap objects are highly predictable and that our prediction me
thods can successfully predict the behavior of these heap objects. We
show that our methods can decrease the page fault rate of the programs
measured, sometimes dramatically, in cases where the physical memory
available to the program is constrained.