MMTk is a framework for the design and implementation of memory managers. It was built by Steve Blackburn, Perry Cheng and Kathryn McKinley in 2002 as part of the Jikes RVM project. The principal idea was to provide a framework that would allow researchers to rapidly build high quality, high performance garbage collectors. Key to this was extensive reuse and sharing of mechanisms and components, so wherever possible all common elements of any pair of GC algorithms were in fact shared. The project was written in a restricted subset of Java, now called RJava. MMTk is not related to, but followed in the footsteps of previous efforts at the University of Massachusetts. The project was originally called JMTk (Java Memory management Toolkit), but was renamed MMTk (Memory Management Toolkit). The code was merged into the Jikes RVM master on November 1, 2002, and remains the memory management framework used by Jikes RVM. Major contributors to the code base over time were Steve Blackburn, Perry Cheng, Daniel Frampton, and Robin Garner.Source
The Java source code for MMTk can be found here as part of the Jikes RVM research JVM. MMTk is written in RJava, a restricted fully-static dialect of Java.Plans
Blackburn is leading a team of students at ANU who are working on a complete re-write of MMTk in the Rust programming. The principal goal is to make MMTk available to runtimes other than Jikes RVM. This will create an opportunity for other language implementations by providing them with a high performance memory management framework, and will allow memory management researchers to work in a high performance research framework that supports multiple language runtimes.Impact and Publications
Two papers were published early in the life of the project. The first appeared at ICSE in May 2004 and described the software engineering of MMTk both as an example of high performance systems engineering in a high level language, and as an example of reuse and modularity with very low overhead. The second, at SIGMETRICS in June 2004, was titled 'Myths and realities: the performance impact of garbage collection', and demonstrated the utility of MMTk as a powerful framework for evaluating garbage collection algorithms.
MMTk was at the heart of both Daniel Framption and Robin Garner's PhD theses. The work has been cited hundreds of time and used as the basis for many innovations in memory management research.
In addition to being the basis for numerous developments in GC design, MMTk was used as part of VMKit, a project that provided language implementors with a compiler, threading sub-system and garbage collector. It also influenced the design of the garbage collectors in the PyPy Python virtual machine.
MMTk received the ACM SIGMETRICS test of time award in 2014, ten years after publication of the 'Myths and Realities' paper.Contact
For further information, please contact Steve Blackburn.