Mostly accurate stack scanning
Katherine Barabash, Elliot K. Kolodner, et al.
JAVA VM 2001
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, Elliot K. Kolodner, et al.
JAVA VM 2001
Katherine Barabash, Ori Ben-Yitzhak, et al.
ACM TOPLAS
Ran Shaham, Elliot K. Kolodner, et al.
ISMM 2000
Tamar Domani, Gal Goldshtein, et al.
ISMM 2002