前言
关于各GC间对比的官网描述
翻译:
- Parallel GC 只能作为一个整体来压缩和回收老年代的空间。G1 逐渐将这项工作分布到多个更短的集合中。这会以潜在的吞吐量为代价大大缩短暂停时间。
- G1 并发执行部分老年代空间回收。
- G1 可能表现出比上述收集器更高的开销,由于其并发性质而影响吞吐量。
- ZGC 的目标是非常大的堆,旨在以更高的吞吐量为代价提供更短的暂停时间。
吞吐量
目前来说,在不设置期望停顿时间(Critical Throughput)时,Parallel Scavenge的吞吐量最大,因为Parallel Scavenge基于标记-复制算法实现,侧重于吞吐量。但是即使在这种情况下ZGC依然达到了以高吞吐量为目标的Parallel Scavenge的99%,直接超越了G1。
在设置了期望停顿时间时(比如10毫秒到100毫秒),ZGC的表现反超了Parallel Scavenge收集器
数据见图
停顿时间
而在ZGC的强项停顿时间测试上,它就毫不留情地与Parallel Scavenge、Gl拉开了两个数量级的差距。不论是平均停顿,还是95%停顿、99%停顿、99.9%停顿,抑或是最大停顿时间,ZGC均能毫不费劲地控制在十毫秒之内,以至于把它和另外两款停顿数百近千毫秒的收集器放到一起对比。
数据见图
测试数据
图示来自于 http://spec.org/jbb2015
评论区