Re:Java 16
by watwut on Tuesday March 16, 2021 @04:45PM
(#26482699)
There are no GC pauses issues practically now and for years. Language startup is also not all that much issue.
[ Parent
| on HN ]
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.
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