Search

School of Computing

Tomas Kalibera and Richard Jones

In Proceedings of the 10th International Symposium on Memory Management
(ISMM), pages 182-196. ACM, June 2011
[doi].

Abstract

Compacting garbage collectors must update all references to objects they
move. Updating is a lengthy operation but the updates must be transparent
to the mutator. The consequence is that no space can be reclaimed until all
references have been updated which, in a real-time collector, must be done
incrementally.

One solution is to replace direct references to objects with handles.
Handles offer several advantages to a real-time collector. They eliminate
the updating problem. They allow immediate reuse of the space used by
evacuated objects. They incur no copy reserve overhead. However, the
execution time overhead of handles has led to them being abandoned by most
modern systems.

We re-examine this decision in the context of real-time garbage collection,
for which several systems with handles have appeared recently. We provide
the first thorough study of the overheads of handles, based on an optimised
implementation of different handle designs within Ovm's Minuteman real-time
collector. We find that with a good set of optimisations handles are not
very expensive. We obtained zero overhead over the widely used Brooks-style
compacting collector (1.6% and 3.1% on two other platforms) and 9% increase
in memory usage. Our optimisations are particularly applicable to
mark-compact collectors, but may also be useful to other collectors.