Skip to end of metadata
Go to start of metadata


This tutorial will build up a sophisticated garbage collector from scratch, starting with the empty shell that is the NoGC "collector" in MMTk (collector is a misnomer in this case since NoGC does not collect), and gradually adding functionality.

This tutorial will tell you the mechanics of building a collector in MMTk. It will tell you how but it does not tell you anything about why. The tutorial thus serves two purposes: 1) to give you some insight into the mechanics of MMTk (but not the underlying reasons or design rationale), and 2) show you that the mechanics of building a non-trivial GC in MMTk is not hard, hopefully giving you confidence to start exploring MMTk more deeply.


The current version of the tutorial was written with respect to the Jikes RVM just prior to 3.0.2. So please use either the head or 3.0.2 (if it is available).

1 Preliminaries

2 Building a Mark-sweep Collector

3 Building a Hybrid Copying/Mark-Sweep Collector

  • No labels