Concurrent Mark-Sweep (CMS) Collector - "+XX:+UseConcMarkSweepGC"

This chapter provides tutorial notes and example codes on the Concurrent Mark-Sweep Collector specified by the '+XX:+UseConcMarkSweepGC' JVM option. Topics include introduction to Concurrent Mark-Sweep (CMS) Collector; CMS Collector log message format; demonstration of reduction of stop-the-world by running parts of Mark and Sweep step concurrently with the application.

What Is Concurrent Mark-Sweep (CMS) Collector

Concurrent Mark-Sweep Collector GC Log Message Format

Reduce Stop-The-World with Concurrent Mark and Sweep

Parallel New (ParNew) Collector for Minor GC

ParNew Collector - Tenuring Age Distribution

Maximum Logging of All Phases on Young GC

"-XX:ParallelGCThreads=6" - Young GC Parallel Threads

"-XX:MaxTenuringThreshold=0" - Tenuring Objects Immediately

"-XX:CMSInitiatingOccupancyFraction=20" - Initiate CMS

Maximum Logging of All Phases on Old GC

Maximum Logging of All Phases on Full GC

"-XX:ParallelGCThreads=6" - Old GC Parallel Threads

"-XX:ConcGCThreads=3" - Old GC Concurrent Threads

Takeaways:

Table of Contents

 About This Book

 Heap Memory Area and Size Control

 JVM Garbage Collection Logging

 Introduction of Garbage Collectors

 Serial Collector - "+XX:+UseSerialGC"

 Parallel Collector - "+XX:+UseParallelGC"

Concurrent Mark-Sweep (CMS) Collector - "+XX:+UseConcMarkSweepGC"

 Garbage First (G1) Collector - "+XX:+UseG1GC"

 The Z Garbage Collector (ZGC) - "+XX:+UseZGC"

 Object References and Garbage Collection

 Garbage Collection Performance Test Program

 Performance Tests on Serial Collector

 Performance Tests on Parallel collector

 Performance Tests on Concurrent collector

 Performance Tests on G1 collector

 Garbage Collection Performance Test Summary

 References

 Full Version in PDF/EPUB