The Delft Java Processor (DJP) is a hardware approach aiming at accelerating bytecode execution. One of the critical tasks in a JVM that could benefit from hardware support is garbage collection. To efficiently perform garbage collection in the DJP we have to better understand the general garbage collection related issues in real life situations. In this respect we provide in this paper a study of the dynamic allocation behavior of Java programs based on the SPECjvm98 benchmark suite. Age, size and type distribution of Java objects are presented and interpreted from the general point of view of garbage collection, together with other garbage collection related measurements. Thus we can identify the features of an efficient DJP dedicated garbage collector and propose supporting architectural extension(s) in the DJP. The study confirms the weak generational hypothesis according to which objects are most likely to die very young, suggesting that a collector with two generations could improve garbage collection performance with corresponding hardware support. To fully take advantage of the generational hypothesis efficient hardware-implemented write barriers are needed. Hardware support is also recommended for describing the dynamic layout of the stack (stack pointer map) for accurate garbage collection.
[1]
A. Petit-Bianco.
JAVA GARBAGE COLLECTION FOR REAL-TIME SYSTEMS
,
1998
.
[2]
Paul R. Wilson,et al.
Uniprocessor Garbage Collection Techniques
,
1992,
IWMM.
[3]
Stamatis Vassiliadis,et al.
Delft-Java link translation buffer
,
1998,
Proceedings. 24th EUROMICRO Conference (Cat. No.98EX204).
[4]
Richard Jones,et al.
Garbage collection
,
1996
.
[5]
Herbert Schildt.
Java: The Complete Reference
,
1996
.
[6]
李幼升,et al.
Ph
,
1989
.
[7]
Stamatis Vassiliadis,et al.
The Delft-Java Engine: An Introduction
,
1997,
Euro-Par.
[8]
Rafael Dueire Lins,et al.
Garbage collection: algorithms for automatic dynamic memory management
,
1996
.
[9]
John C. Gyllenhaal,et al.
Java bytecode to native code translation: the Caffeine prototype and preliminary results
,
1996,
Proceedings of the 29th Annual IEEE/ACM International Symposium on Microarchitecture. MICRO 29.
[10]
Guy L. Steele,et al.
The Java Language Specification
,
1996
.
[11]
Frank Yellin,et al.
The Java Virtual Machine Specification
,
1996
.
[12]
Troy Downing,et al.
Java Virtual Machine
,
1997
.