Enormous commercial interest in languages such as Java and C# has fueled a resurgence in garbage collection research. The major breakthroughs were in the early 60's (reference counting and tracing collection) and mid 80's (generational collection). It is sobering to realize that Ungar's work on generational collection, core to most modern GC implementations, was evaluated on a Sun 1. Since then programming languages and architectures have changed significantly, throwing into question many of the assumptions made by early work in the field. Furthermore, as garbage collected languages become ubiquitous and are applied to performance critical applications, the performance goals for garbage collection become more acute. This emphasis on performance has highlighted the need for improved methodology for evaluating memory management performance.
MMTk is a memory management toolkit designed to allow rapid
development of new garbage collection ideas, and to provide a common
platform for apples-to-apples evaluation of garbage collection
algorithms. It is implemented in Java, within Jikes RVM. MMTk is
designed to be portable and has recently been ported to the shared
source CLI, Rotor. Steve and Perry designed and implemented MMTk
with their colleague, Kathryn McKinley.
This tutorial will cover the design, implementation and evaluation of garbage collection algorithms from the perspective of MMTk. The tutorial is aimed at researchers and implementers of garbage collectors and virtual machines. Topics will include: co-designing a virtual machine and its memory management subsystem; designing and implementing a garbage collection algorithm in MMTk; and methodology for evaluating memory management performance. The tutorial will include a live demonstration where we will build and run a non-trivial collector in MMTk from scratch.
![]() |
|
Steve is at the Department of Computer Science,
the Australian National University. MMTk is the second memory
management toolkit Steve has developed. Steve's research focus is
on memory management and memory performance. With his colleagues
he has developed a number of new GC algorithms, including Beltway,
Ulterior Reference Counting, TMOS, and CopyMS. He has a
particular interest in new methodologies for analysis and performance
comparison. |
![]() |
Perry is a researcher at IBM Research Watson. His thesis work involved the design and evaluation of a number of garbage collectors, including a parallel real-time collector for ML. His experience includes working with functional, imperative, and object-oriented languages in the context of language design, compilers, and runtime systems. Since moving to IBM Research, he developed MMTk and a new real-time GC algorithm under the Metronome project and has worked with both research and product JVMs. |