For a review and classification of the various garbage collectors and collection techniques available in JVMs today, download this white paper.  It defines terms and metrics common to all collectors, including the generational, parallel, ‘stop-the-world’, incremental, concurrent and mostly concurrent collection techniques.
 
In addition to the various garbage collection techniques the paper also addresses the trade-offs involved in balancing requirements for responsiveness, throughput, space and available memory across varying scale levels.  It also includes a review of the pitfalls, common misconceptions, and ‘myths’ around garbage collection behavior, as well as examples of how certain choices can result in impressive application behavior.
 
Choosing a Garbage Collector
This table summarizes the types of popular commercially available garbage collectors
 
 
For another resource on how Java garbage collection works and the differences between collection algorithms, watch this video from Azul CTO Gil Tene.
 
The Zing® default Java garbage collection algorithm, C4 (Continuously Concurrent Compacting Collector), improves performance and removes barriers to Java scalability by eliminating pause times even at very large memory heap sizes. This unique technology, which was part of Azul’s Vega hardware appliances, is now available as part of Zing, Azul’s innovative Java Virtual Machine for x86 commodity servers. The Zing pauseless garbage collector uses a combination of software techniques and hardware emulation features to support ‘concurrent compaction’ that allows applications to continue processing while remapping memory.

Benefits of Zing Pauseless Garbage Collection

Resources

© Azul Systems, Inc. 2017 All rights reserved.