Erik Altman photoDavid Grove photo

Metronome - Metronome GC

Real-time Garbage Collection is the process of collecting data that is no longer in use by an application at the same time that the application continues to run, while keeping the interruptions by the collector (also called pause times) short and evenly spaced. The goal of the Metronome project is to produce a garbage collector with pause times that are as low as operating system context-switch times in the worst case while providing highly uniform CPU utilization, low memory overhead, and low garbage collection cost.

To date the Metronome Garbage Collector achieves these goals with a maximum pause time a few hundred microseconds. The results rely on:

  • Metronimic Scheduling, in which real-time scheduling is based on time rather than work quanta, which we show to be fundamentally necessary for real-time response and different from most previous real-time collectors.

  • A high-performance read-barrier with only 4% CPU overhead. This is an order of magnitude faster than previous software read-barriers which typically had overheads of 20-40%. We achieve this high performance by tightly integrating the collector with the compiler, which is able to extensively optimize the read barrier.

  • Arraylets, a technique for efficiently breaking up large arrays into smaller objects to limit the real-time cost of scan, update, or move operations on large objects.
Based on these techniques, we are able to provide guaranteed performance based on a small number of input parameters from the programmer (maximum heap size, allocation rate, and either CPU utilization requirement or space utilization requirement).


Current research focuses on driving maximum pause times down to 250 microseconds, reducing space overhead with real-time generational collection, extending the system to work on multiprocessors, and defining a comprehensive set of interfaces and real-time services for a garbage collected virtual machine.

Metronome Garbage collection is now commercially available under the name WebSphere Real Time. This product is the result of a collaboration between the Metronome team and IBM Software Group. The first implementation of Metronome was in the open-source Jikes Research Virtual Machine (RVM).