Program |
 |
|
|
Find in Program |
 |
|
|
Page |
 |
|
|
Basket |
 |
|
view, help
"Finding Your Cronies: Static Analysis for Dynamic Object Colocation"
|
|
|
|
Finding Your Cronies: Static Analysis for Dynamic Object Colocation
Meeting Rooms 1-3 Wednesday, 11:30, 30 minutes 7 | · | 8 | · | 9 | · | 10 | · | 11 | · | 12 | · | 13 | · | 14 | · | 15 | · | 16 | · | 17 | · | 18 | · | 19 | · | 20 | · | 21 |
Samuel Guyer, The University of Texas at Austin Kathryn McKinley, The University of Texas at Austin
This paper introduces cooperative object colocation, an
optimization to reduce copying costs in generational and other
incremental garbage collectors by allocating connected objects
together in the same space. Previous work indicates that connected
objects die together, but generational copying collectors
allocate new objects in a nursery regardless of the location of
an older object that points to it. Cooperative colocation consists of
(1) a flow insensitive static compiler analysis that finds potential
colocation allocation sites; (2) a modified allocator which
takes a colocation object as a parameter; and (3) a runtime test that
allocates a new object together with its colocator. At runtime in a
generational setting, the allocator places the object in the old space
if the colocator resides in the old space, and otherwise allocates the
new object in the nursery. Unlike pretenuring, colocation makes
precise per object allocation decisions, and does not require lifetime
analysis or allocation site homogeneity. Experimental results for
SPEC Java Benchmarks using MMTK, a Java Memory Management Toolkit in
JikesRVM, show colocation can reduce nursery collection work, improving
the performance of two generational collectors by up to a factor of 2,
and total performance by up to 10%.
|