3 ms·
With the BurstHeapMemoryBenchmark, I wonder whether the effect is driven by the concurrency of G1/Shenendoah/ZGC, not greater efficiency. If the code doing all
by hyperpape 7y ago
With the BurstHeapMemoryBenchmark, I wonder whether the effect is driven by the concurrency of G1/Shenendoah/ZGC, not greater efficiency.
If the code doing allocation is single threaded, then parallel/serial GCs could have stop the world pauses, while the other collectors would continue allocating while the GC runs.
That's a real effect. It means that sometimes you can improve the throughput of a process with a lot of sequential work by allocating extra-CPUs and using concurrent collectors. However, that's something of a niche case--more often, you choose between throughput and lower pause times.
- kjeetgill 7y agoI think the rock-paper-scissors dance between throughput, latency, and efficancy that a GC plays is a pretty facinating topic. It really brings out the our biases from the kinds of work we do. If a service has reduced it's latency that only increases the throughput the overall system. CPU/Memory efficiency of a single process often much less important because there's often headroom and GC can help leverage underutilized that cpu/memory.