PhD Student at the University of Victoria

The Jam-o-lizer: Garbage Collection Visualization for JamVM

The Jam-o-lizer is a garbage collection visualization system for the JamVM, that allows JamVM to be used with GCSpy. The Jam-o-lizer was created by Chris Matthews, Jen Baldwin, and Bill Gallop as a project for a class at the University of Victoria under the supervision of Dr. Horspool.


Garbage collection is a vital part of a virtual machine. However, the choice of garbage collector and its correct implementation is different for each type of system, especially real-time systems. It is hard to imagine what is happening internally within the garbage collector, which can lead to extremely fragmented systems or systems with degraded performance. GCspy is a free visualization tool that attempts to improve our understanding of garbage collection. It is adaptable enough to be used in virtual machines written in Java, C or C++ and claims to be easy to use. JamVM is a free, open-source Java Virtual Machine (JVM) that fully implements the JVM specification. However, JamVM is also very lightweight and claims to leave a small memory footprint. The goal of our work is to incorporate GCSpy into the JamVM to visualize the memory footprint left by programs that it runs. Additionally, we will also be able to validate the effort needed to add GCspy to a virtual machine.


A copy of the findings and analysis can be found below. A full copy of the source is available; upon request. Our presentation slides are also available as well

Screen Shots

click on any of these for a larger version:

showing the marked objects for the next sweep

showing the used space allocation as heavy fragmentation is occurring

after a sweep, note the concentration of small chucks in the free list (blue box)

Showing all the roots found in a mark and sweep scan

showing the object allocation

showing the used space allocation as a program grows in size

objects after a sweep

tile information

used space after a sweep

jamOLizer.pdf633.38 KB
jam_slides.pdf1.1 MB
theJamOLizer.tar4.51 MB