java8性能对比_Java 11 究竟比 8 快了多少?

阅读本文大概需要 1.2 分钟。

28f8a130ebabfe338247a8ea69f7f667.png

作者:h4cd

来源:开源中国社区

开源规划调度引擎 OptaPlanner 官网发布了一个 Java 11 GC 性能基准测试报告。

88e88f577e05c3803c6e6d5b02180b04.png

当前使用量最大的 Java 版本是 8,所以测试者用 Java 8 与 Java 11 进行对比测试。

GC 是影响 Java 性能的关键因素,所以测试自然也基于 GC,在 G1 GC 和并行 GC 下分别进行了测试,结果如下:

Java 8 vs. Java 11

使用 G1 GC

7a87de43a2491fb4f47311decdf425d3.png

G1 GC 下每秒分值:

9952bc6d5d8f4c352e1f22168b2a2214.png

Java 11 在几乎所有测试数据集上都有速度上的提升。

平均而言,仅通过切换到 Java 11 就有 16% 的改进,这种改进可能是因为 Java 10 中引入了 JEP 307: Parallel Full GC for G1。

使用并行 GC

54c14828c0e8f325984b411459f69c74.png

并行 GC 下每秒分值:

154d8325a233ef6284b8f04b0993462a.png

使用并行 GC,结果不如 G1,某些数据集上有所改进,但其它数据集保持不变甚至出现性能下降。平均而言,Java 11 的性能提升了 4% 以上。

测试者还在 Java 11 上对并行 GC 与 G1 GC 进行对比:

Java 11 上并行 GC vs. G1 GC

c5f524947e262b800a1eed26b69b40b4.png

结果表明 G1 GC 整体上不如并行 GC。

OptaPlanner 表示,从 Java 8 到 Java 11,G1 GC 的平均速度改进为 16.1%,并行 GC 为 4.5%。

此外虽然并行 GC 面向吞吐量,而 G1 则侧重于低延迟 GC,但是 Java 11 中带来的 G1 显著改进,使得将两者进行直接比较是有意义的。

此外,基于基准测试中的大多数数据集来看,并行 GC 还是更适合 OptaPlanner 的,因为吞吐量对于解决 OptaPlanner 的优化问题更为重要。

详细测试基准与过程查看原文:

https://www.optaplanner.org/blog/2019/01/17/HowMuchFasterIsJava11.html

往期精彩回顾

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值