Speaker: Martin Hirzel , Computer Science, University of Colorado at Boulder
Connectivity-Based Garbage Collection
Abstract: Garbage collection is an important features of modern programming languages: by liberating the programmer from the responsibility of freeing up unused memory by hand, it leads to code with fewer bugs and cleaner design. However, these software engineering benefits have their costs: garbage collection may incur annoying pauses, slowdowns, and increased memory requirements.
This talk presents a novel family of garbage collection algorithms that use information about the connectivity of heap objects to reduce these costs. I first present empirical data showing that connectivity information is a good indicator for when objects die. Then I describe a family of garbage collectors that exploit connectivity properties to yield short pause times, good throughput, and low memory footprint. As part of implementing this collector, I developed the first non-trivial pointer analysis that handles all of Java, including dynamic class loading, reflection, and native code. I present an evaluation of connectivity-based garbage collection and the pointer analysis.
Short Bio: Martin Hirzel is a Ph.D. student at the University of Colorado at Boulder. His research area is the efficient implementation of programming languages. He has worked on garbage collectors, compiler analyses, dynamic optimization, profiling, prefetching, and understanding program behavior. He received his M.S. from the University of Colorado at Boulder in 2000, and his Vordiplom from Darmstadt University of Technology in Germany in 1998.
Host: Purush Iyer, Computer Science, NCSU
Colloquia Home Page.