OOPSLA '04

Program
Technical Program
  Invited Speakers
  Technical Papers
  Onward!
  Panels
  Practitioner Reports
  Tutorials
Workshops
DesignFest
Educators' Symposium
Demonstrations
Posters
Doctoral Symposium
Exhibits
Student Research Comp.
FlashBoF
 
Turing Lecture
 
Social Events
 
Week at a Glance
 
Final Program (1.5M .pdf)

Find in Program
 

Page
Printer-friendly

Basket
view, help

"Finding Your Cronies: Static Analysis for Dynamic Object Colocation"
Object-Oriented Programming, Systems, Languages and Applications
Home    Program    Housing & Transportation    Registration    Submissions    Wiki    Maps
 
  > Technical Program > Technical Papers > Java Technologies

 : Wednesday

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%.