Red Hat engineers are moving forward with their Shenandoah garbage collection technology, which would give Java a boost in large-heap applications.
Proposed as an OpenJDK open source Java project last week, Shenandoah is intended to reduce garbage collection pause times. "Existing GCs show pause times of several 100ms up to several seconds on heaps [greater than] 100GB," said Red Hat software engineer Roman Kennke, in his proposal. "That's because they need to stop all Java threads for compacting the heap."
Shenandoah, billed as being "an almost pause-less garbage collection algorithm," has been in development as part of the IcedTea Java project. Shenandoah implements a new algorithm that allows for heap compaction while only stopping the Java threads briefly for root scanning; it then evacuates the heap concurrently. This makes pause times unrelated to the heap size and only proportional to the root set size, Kennke explained.