【Java核心高阶进阶】15-ZGC与Shenandoah低延迟收集器
15 | ZGC 与 Shenandoah:低延迟收集器的染色指针与读屏障模块三:JVM 垃圾回收 · 第 5 篇G1 将暂停降到百毫秒级,ZGC 和 Shenandoah 进一步追求亚毫秒级暂停,让 GC 对延迟几乎无感。它们代表了 GC 的前沿方向。一、为什么需要 ZGC / ShenandoahG1 虽然优秀,但仍有 STW 阶段(初始标记、最终标记、筛选回收),堆增大时暂停会增长。对于TB 级堆或金融交易等极致低延迟场景,G1 的暂停仍不可接受。ZGC(Oracle,JDK 11 实验,JDK 15 正式)和 Shenandoah(RedHat,JDK 12+)的目标是:无论堆多大,暂停都不超过 1ms(通常 0.1~0.5ms),且暂停时间不随堆增大而增长。堆大小 Serial/CMS G1 ZGC 1GB ~100ms ~50ms 1ms 32GB ~10s ~200ms 1ms 4TB 不可用 ~数秒 1ms ← ZGC暂停与堆无关