Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The garbage collectors for Jikes RVM are provided by MMTk. The MMTk: The Memory Manager Toolkit describes MMTk and gives a tutorial on how to use and edit it and is the best place to start.  An updated version of the tutorial is here. A detailed description of the call chain from the compilers through to MMTk here is another good place to start understanding how MMTk integrates with JikesRVM.  Anatomy of a Garbage Collector describes the major building blocks of an MMTk collector and Scanning Objects in JikesRVM describes how objects are scanned for their pointer fields during GC.  MMTk also has a pure Java test harness that allows development of garbage collectors in an IDE like eclipse.

The RVM can be configured to employ various different allocation managers taken from the MMTk memory management toolkit. Managers divide the available space up as they see fit. However, they normally subdivide the available address range to provide:

...

Generational collectors employ a plan which inherits from class Generational Inter alia, this class ensures that a write barrier is employed so that updates from old to new spaces are detected.

The RVM does not currently support concurrent garbage collection.

Jikes RVM may also use the GCSpy visualization framework. GCSpy allows developers to observe the behavior of the heap and related data structures.