Katherine Barabash, Ori Ben-Yitzhak, et al.
ACM TOPLAS
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.
Katherine Barabash, Ori Ben-Yitzhak, et al.
ACM TOPLAS
Michael Factor, David Hadas, et al.
MSST 2013
Katherine Barabash, Elliot K. Kolodner, et al.
JAVA VM 2001
Tamar Domani, Elliot K. Kolodner, et al.
SIGPLAN Notices (ACM Special Interest Group on Programming Languages)