Program |
 |
|
|
Find in Program |
 |
|
|
Page |
 |
|
|
Basket |
 |
|
view, help
"The Garbage Collection Advantage: Improving Program Locality"
|
|
|
|
The Garbage Collection Advantage: Improving Program Locality
Meeting Rooms 1-3 Tuesday, 11:00, 30 minutes 7 | · | 8 | · | 9 | · | 10 | · | 11 | · | 12 | · | 13 | · | 14 | · | 15 | · | 16 | · | 17 | · | 18 | · | 19 | · | 20 | · | 21 |
Xianglong Huang, University of Texas at Austin Stephen Blackburn, Australian National University Kathryn McKinley, University of Texas At Austin J. Eliot B. Moss, The University of Massachusetts, Amherst Zhenlin Wang, Michigan Technological University Perry Cheng, IBM T.J. Watson Research Center
As increases in processor speed continue to outpace increases in cache
and memory speed, programs are losing more performance to poor
locality. Because copying garbage collectors move objects, they have
the opportunity to improve locality for languages such as Java. This
paper introduces a new dynamic, online class analysis for finding and
exploiting locality in a copying collector. The analysis exploits
method sampling in a JIT (just-in-time) optimizing compiler. For each
hot (frequently accessed) method, object reordering analysis
marks the class fields that the method accesses as hot. Then at
garbage collection time, the collector copies referents of hot fields
together with their parent. Enhancements to this basic technique
include heuristics that decay heat to respond to phase changes, group
objects of hot classes together in a separate copy space, and static
analysis to exclude cold basic blocks from the reordering analysis.
In experiments with JikesRVM using MMTk on a range of Java programs,
the overhead of dynamic class reordering is on average negligible and
at most 1.9%. We compare class reordering with a number of static
class oblivious orderings (e.g., breadth and depth first). The
overall time variation between static orderings can be up to 25% and
there is no consistent winner. In contrast, dynamic class reordering
always matches or improves over the best static ordering since its
history-based copying order tunes memory layout to program traversal.
|