从 JDK 8 到 JDK 17,GC 性能大幅提升(2)

本文探讨了JDK 17相对于JDK 8和11在垃圾收集(GC)方面的显著性能提升,特别是Parallel GC和ZGC的改进。介绍了GC的不同优化目标,如吞吐量、延迟和资源占用,并通过SPECjbb® 2015基准测试展示了GC的进步。ZGC在吞吐量方面取得了最大提升,而所有收集器在延迟和资源占用上都有所改善。文章还强调了整个Java平台的优化,包括JIT编译器的贡献,并提供了相关学习资源。
摘要由CSDN通过智能技术生成

每日技术干货,第一时间送达

JDK17 发布已经几个月了,其中不仅包含很多新语言功能,而且与旧版 JDK 相比,性能提升也非常明显。与之前 LTS 版本的 JDK 8 和 JDK 11 相比,JDK17 的性能提升尤为明显。此次性能的提升大部分来自 JVM 的新功能和优化,在本文中我们就来重点谈一谈垃圾收集的改进。

最近,我发表过一个演讲,重点介绍了自 JDK 8 以来 G1 中的新特性,本文将在此基础之上进一步扩展,以涵盖 Parallel GC 和 ZGC取得的进步。此外,我们还有第四个受支持的收集器:Serial GC,但没有包含在此次的比较之内。Serial 是一个稳定的收集器,开销很低,但本文涉及的基准测试需要高性能的 GC 才能正常工作。

1、服务于不同的目标


有时,选择使用哪个垃圾收集器并非一目了然。重要的是需要明白,为了做出正确的选择,首先你需要搞清楚你的主要目标是什么。常见的目标包括优化吞吐量、延迟和/或资源占用情况。最佳解决方案当然是针对上述所有目标进行优化,并在每种情况下获得最佳性能。收集器力求从各个方面进行优化,但它们必须根据不同的目标做出不同的权衡。

下面,快速介绍一下不同优化的含义:

  • 吞吐量:降低 GC 对可在指定时间内完成的事务总数的影响。

  • 延迟:降低 GC 对单个事务的影响。

  • 资源占用情况:降低GC 使用的额外资源。

不同的权衡并不意味着无法从所有方面优化收集器。在优化收集器时ÿ

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值