by Matthew L. Seidl, Matthew L. Seidl, Matthew L. Seidl, Benjamin G. Zorn, Benjamin G. Zorn, Benjamin G. Zorn
http://www.cs.colorado.edu/~seidl/papers/TR-ref-pred.ps
Add To MetaCart
Abstract:
Dynamic storage allocation has become increasingly important in many applications, in part due to the use of the object-oriented paradigm. At the same time, processor architectures are including deeper cache memory hierarchies to hide the increasing latency to main memory. In this paper, we investigate efforts to predict which heap objects will be highly referenced at the time they are allocated. Our approach uses profile-based optimization, and considers a variety of different information sources present at the time of object allocation to predict the object's reference frequency. Our results, based on measurements of four allocation intensive programs, show that program references to heap objects are highly skewed and that our prediction methods can successfully predict the program objects that will be the most highly referenced. We show that using this technique, a large fraction of a program's heap references can be directed at a part of the heap that is small enough to fit in the cache (e.g., 8--64 kilobytes).
Citations
|
664
|
ATOM: A system for building customized program analysis tools
– Srivastava, Eustace
- 1994
|
|
186
|
Efficient path profiling
– Ball, Larus
- 1996
|
|
175
|
The Java Language Specification. The Java Series
– Gosling, Joy, et al.
- 1996
|
|
141
|
Program optimization for instruction caches
– MCFARLING
- 1989
|
|
129
|
A.: Garbage Collection in a Large Lisp System
– Moon
- 1984
|
|
81
|
Quantifying Behavioral Differences Between C and C++ Programs
– Calder, Grunwald, et al.
- 1994
|
|
81
|
Profile-Guided Receiver Class Prediction
– Grove, Dean, et al.
- 1995
|
|
70
|
Using lifetime predictors to improve memory allocation performance
– Barrett, Zorn
- 1993
|
|
70
|
Improving the cache locality of memory allocation
– Grunwald, Zorn, et al.
- 1993
|
|
56
|
Accurate static estimators for program optimization
– Wagner, Maverick, et al.
- 1994
|
|
51
|
Caching considerations for generational garbage collection
– Wilson, Lam, et al.
- 1992
|
|
45
|
Whole-Program Optimization of Object-Oriented Languages
– Chambers, Dean, et al.
- 1996
|
|
41
|
Memory subsystem performance of programs using copying garbage collection
– Diwan, Tarditi, et al.
- 1994
|
|
36
|
Improving locality of reference in a garbage-collecting memory management-system
– Courts
- 1988
|
|
36
|
E ective static-graph reorganization to improve locality in garbagecollected systems
– Wilson, Lam, et al.
- 1992
|
|
35
|
Cache performance of garbage-collected programs
– Reinhold
- 1993
|
|
33
|
The effect of garbage collection on cache performance
– Zorn
- 1991
|
|
24
|
Fast Fits: New Methods for Dynamic Storage Allocation
– Stephenson
- 1983
|
|
16
|
Fundamental Algorithms, volume 1 of The Art of
– Knuth
- 1973
|
|
16
|
Quantifying behavioral di erences between C and C++ programs
– Calder, Grunwald, et al.
- 1994
|
|
8
|
Predicting lifetimes in dynamically allocated memory
– Cohn, Singh
- 1996
|
|
3
|
Some empirical observations on program behavior with applications to program restructuring
– Peachey, Bunt, et al.
- 1985
|
|
2
|
The e#ect of garbage collection on cache performance. Computer Science
– Zorn
- 1991
|