School of Computing

Handles revisited: optimising performance and memory costs in a real-time collector

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.

Download publication 141 kbytes (PDF)

Bibtex Record

@inproceedings{3122,
author = {Tomas Kalibera and Richard Jones},
title = {Handles revisited: optimising performance and memory costs in a real-time collector},
month = {June},
year = {2011},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {10.1145/1993478.1993492},
url = {http://www.cs.kent.ac.uk/pubs/2011/3122},
    publication_type = {inproceedings},
    submission_id = {656_1308754301},
    ISBN = {978-1-4503-0263-0},
    booktitle = {Proceedings of the 10th International Symposium on Memory Management (ISMM)},
    publisher = {ACM},
    refereed = {yes},
}

School of Computing, University of Kent, Canterbury, Kent, CT2 7NF

Enquiries: +44 (0)1227 824180 or contact us.

Last Updated: 21/03/2014