Re:Java 16
by dehrmann on Wednesday March 17, 2021 @12:10AM
(#26486432)
I'd say they're at a point where they're not a problem for most use cases, but if you're trying to get p9999 latency down, you might have to start looking at them.
[ Parent
| on HN ]
The default GC has ridiculously good throughput with modest latency (10ms for quite large heap sizes), but there are also alternatives like ZGC and Shenandoah that optimize for latency instead, and they promise <10 ms latency, but in practice they are around 3-4 ms. At which point, not running a real time OS, you will get bigger hiccups from the OS scheduler.
Also, for very different use cases like soft real time, there are specific JVMs with real time guarantees.
Here is a great post about it: https://jet-start.sh/blog/2020/06/09/jdk-gc-benchmarks-part1
And in JDK 16, ZGC has concurrent thread-stack processing, which typically reduces GC pauses below 1 ms