Overlooking Roots: A Framework for Making Nondeferred Reference-Counting
Garbage Collection Fast
Pramod Joisha
The
2007 International Symposium on Memory Management (ISMM 2007)
Montreal, Canada, 21-22 October, 2007
Abstract
Numerous optimizations exist for improving the performance of
nondeferred reference-counting (RC) garbage collection. Their designs are ad
hoc, intended to exploit different count removal opportunities. This paper shows
that many of these optimizations can be unified using a notion called
overlooking roots. The paper also shows how the notion enables more powerful
versions of past optimizations, and makes possible new optimizations.
While recent static analyses have dramatically improved nondeferred RC
performance, margins relative to the deferred variant were still significant in
the worst case. With the optimizations made possible by overlooking roots, we
show that these margins can be reduced to within 4% on nearly all programs in a
test suite, at even large heap sizes, and to within 23% in the worst case.