Current real-time garbage collection algorithms are usually criticised for their high memory requirements. Even when consuming nearly 50% of cpu time, some garbage collectors ask for at least twice the memory as really needed. This paper explores the fundamental reason for this problem and proposes a new performance indicator for better design of real-time garbage collection algorithms. Use of this indicator motivates an algorithm that combines both reference counting and mark-and-sweep techniques. The implementation of this algorithm for jRate is described and its performance reviewed. The use of dual priority scheduling of the garbage collection tasks allows spare capacity in the system to be reclaimed whilst guaranteeing deadlines.

BibTex Entry

@inproceedings{Chang2006,
 author = {Yang Chang and Andy Wellings},
 booktitle = {Proceedings of the 4th International Workshop on Java Technologies for Real-time and Embedded Systems},
 month = {Oct},
 organization = {University of York},
 title = {Low Memory Overhead Real-Time Garbage Collection for Java},
 year = {2006}
}