25% of the total CPU available on the machine. The background thread here runs periodic-
ally—it turned out to run about 5% of the time—leaving an average CPU utilization of 30%.
Similarly, the throughput collector runs four GC threads. During GC cycles, those threads
consume 100% of the four available CPUs, leaving a 28% average usage during the entire
test. During minor collections, CMS will also run four GC threads that consume 100% of the
When only a single CPU is available, the CPU is always busy—whether running the applica-
tion or GC threads. Now the extra overhead of the CMS background thread is a drawback,
and the throughput collector finishes 9 seconds sooner.