Skew-space garbage collection

https://doi.org/10.1016/j.scico.2011.06.003Get rights and content
Under an Elsevier user license
open archive

Abstract

Semispace garbage collectors relocate all the live objects in one step, which is simple and leads to good performance. Compared with mark-compact collectors, however, they need to reserve extra heap space for copying live objects. As much as half of the heap could be reserved as it is possible that all the allocated objects survive. In reality, however, most programs exhibit a high infant mortality, and therefore reserving half the heap is wasteful.

We have observed that the memory usage of many ordinary programs is relatively stable over the course of their execution. This provides an opportunity for online predictions to dynamically adjust and optimize the reserved space. Consequently, we propose a skew-space garbage collector that reserves space dynamically. This collector is implemented using the MMTk framework of the Jikes RVM and gives encouraging results against related garbage collection algorithms for the DaCapo and SPECjvm98 benchmarks.

Highlights

► Observed and analyzed the size of live Java objects phenomenon. ► Proposed a skew-space collector to utilize this phenomenon. ► Implemented the collector using Jikes RVM and suggested several possible improvement techniques.

Keywords

Skew space
Mark compact
Semi space
Garbage collection
Space efficiency

Cited by (0)