JDK21垃圾收集性能比JDK8快了10%


这篇文章主要介绍了JDK 21和其他版本的GC性能比较。

作者通过使用SPECjbb® 20151基准测试来展示不同GC的性能提升。

他比较了G1、Parallel和ZGC三种GC,发现它们在吞吐量、延迟和内存占用方面都有不同程度的改进。特别是Generational ZGC在性能方面有了显著的提升。

作者建议用户升级到JDK 21,并尝试使用Generational ZGC来获得更好的性能:

  • JDK 21相比JDK 8在GC性能方面有显著提升,特别是Generational ZGC带来的10%的改进。
  • 对于原始吞吐量和延迟得分,G1和Parallel在JDK 21表现最佳,而ZGC的分代模式也有显著的改进。
  • 在内存占用方面,G1经过多年的优化已成为最节省内存的垃圾收集器,而Generational ZGC由于支持多代垃圾收集而占用更多本机内存。

升级并试用Generational ZGC
在 JDK 21 中,ZGC 的Generational 世代版本和传统模式都可用,要使用世代Generational模式,您需要指定这两个标志:

-XX:+UseZGC -XX:+ZGenerational

我们的最终目标是取消传统模式,为了顺利实现这一目标,我们希望用户能就一代 ZGC 性能不如传统 ZGC 的用例提供反馈意见。