3 ms·
The talk has a lot of interesting technical details, but the bottom line for java developers or jvm sys admins is that the new GC trades off throughput for redu
by bradleyjg 8y ago
The talk has a lot of interesting technical details, but the bottom line for java developers or jvm sys admins is that the new GC trades off throughput for reduced maximum pause times (current goal is 10ms max pause time, longer term goal is less than 1 ms).
The upshot of that is that you probably don't want to swap to this unless you use a relatively large heap (at least 32 GB, maybe more), because below that level the STW latency of the other GC options aren't generally speaking bad enough to be worth the trade-off.
Also if latency is a big concern for you and you've got dollars to spend consider Azul zing as well. (That part isn’t from the talk.)
- gbasin 8y agoYep, this. Although to be fair, Zing is pretty good but not a panacea. It causes latencies to increase across the board -- probably due to increased allocation times, or maybe messing with the cache
- chrisseaton 8y ago> probably due to increased allocation times Doesn’t C4 still use a thread-local bump allocator? How does that increase allocation time? I would think it’s much more likely to be the complex barriers.
- gbasin 8y agoYes you're probably right. I haven't dug much into it myself
- giltene 8y agoIf you did (dig into it yourself), you'd quickly find out that the urban myth about Zing somehow hurting latencies across the board is plain wrong. In fact, these days it tends to be percievably faster (in both latency and throughput) in about 70-80% of the workload we encounter. Certainly when compared to G1GC and CMS, and often even when compared to ParallelGC... E.g. it is typicaly >10% faster at things like Cassandra, Spark (TPC-DS), LMAX Disruptor workloads, etc. etc. etc.