School of Computing

Replicating real-time garbage collector for Java

Tomas Kalibera

In Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES), pages 182-196. ACM, September 2009 [doi].

Abstract

Real-time Java is becoming a viable platform for real-time applications, bringing new challenges to a garbage collector. A real-time collector has to be incremental as not to cause deadline misses by suspending an application for too long. In particular, a real-time collector has to relocate objects in the heap, incrementally and transparently to the application. This is usually achieved via an indirection that has to be followed on every read and write to the heap.

We present an alternative solution, based on object replication, which does not need any special handling for memory reads, but writes are more expensive: every value is written twice. As writes are less frequent than reads, the total overhead is reduced. With our implementation in a research real-time Java VM and DaCapo, pseudo-jbb, and SPEC JVM 98 benchmarks, we observe an average speed-up of 3%.

A similar technique was implemented in Sapphire, a copying concurrent collector targeting highly parallel systems. Sapphire requires that all accesses to non-volatile shared variables in applications are protected by locks. Our uniprocessor non-concurrent mostly non-copying collector, targeting green-threading embedded systems, does not have this requirement. The mutator barriers supporting our collector are simpler and more predictable.

Download publication 289 kbytes (PDF)

Bibtex Record

@inproceedings{3130,
author = {Tomas Kalibera},
title = {Replicating real-time garbage collector for {Java}},
month = {September},
year = {2009},
pages = {182-196},
keywords = {determinacy analysis, Craig interpolants},
note = {},
doi = {10.1145/1620405.1620420},
url = {http://www.cs.kent.ac.uk/pubs/2009/3130},
    publication_type = {inproceedings},
    submission_id = {2107_1308855412},
    ISBN = {978-1-60558-732-5},
    booktitle = {Proceedings of the 7th International Workshop on Java Technologies for Real-Time and Embedded Systems (JTRES)},
    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