1. Introduction
  2. For GC Developers
  3. 1. Tutorial: Add a new GC plan to MMTk
    1. 1.1. Introduction
      1. 1.1.1. What is MMTk?
      2. 1.1.2. What will this tutorial cover?
      3. 1.1.3. Glossary
    2. 1.2. Preliminaries
      1. 1.2.1. Set up MMTk and OpenJDK
      2. 1.2.2. Test the build
    3. 1.3. MyGC
      1. 1.3.1. Create MyGC
      2. 1.3.2. Building a semispace GC
        1. 1.3.2.1. Allocation
        2. 1.3.2.2. Collection
        3. 1.3.2.3. Exercise
        4. 1.3.2.4. Exercise solution
      3. 1.3.3. Building a generational copying GC
    4. 1.4. Further Reading
  4. For Language Runtime Developers
  5. 2. Porting Guide
    1. 2.1. MMTk’s Approach to Portability
    2. 2.2. Before Starting a Port
    3. 2.3. How to Undertake a Port
      1. 2.3.1. NoGC
      2. 2.3.2. Next Steps
    4. 2.4. Debugging Tips
      1. 2.4.1. Enabling Debug Assertions
    5. 2.5. Performance Tuning
      1. 2.5.1. Link Time Optimization
      2. 2.5.2. Optimizing Allocation
  6. Contributors

MMTk User Guide

Further Reading

  • MMTk Crate Documentation
  • Original MMTk papers:
    • Oil and Water? High Performance Garbage Collection in Java with MMTk (Blackburn, Cheng, McKinley, 2004)
    • Myths and realities: The performance impact of garbage collection (Blackburn, Cheng, McKinley, 2004)
  • The Garbage Collection Handbook (Jones, Hosking, Moss, 2016)
  • Videos: MPLR 2020 Keynote, Deconstructing the Garbage-First Collector