An algorithm for parallel incremental compaction
Ori Ben-Yitzhak, Irit Goft, et al.
ISMM 2002
Garbage collectors of the mark-sweep family may suffer from memory fragmentation and require the use of compaction. Known compaction methods are expensive and work while program activity is stopped, so that compaction is often a major contributor to garbage collection pause times. We present a parallel incremental compaction algorithm that reduces pause times by working in parallel and evacuating a part of the heap when the program threads are stopped for garbage collection. Our algorithm works with collectors based on mark-sweep, including mostly concurrent collectors. We have implemented a prototype of our algorithm as part of the garbage collector in the IBM JVM. Measurements of our prototype show that even with the most simple-minded policies, e.g., for choosing the area to evacuate, parallel incremental compaction can successfully reduce maximum garbage collection pause times with a minimal performance penalty.
Ori Ben-Yitzhak, Irit Goft, et al.
ISMM 2002
Yoav Ossia, Ori Ben-Yitzhak, et al.
PLDI 2002
Ori Ben-Yitzhak, Nadav Golbandi, et al.
WSDM 2008
Gil Vernik, Michael Factor, et al.
SoCC 2017