Skip to main content
 Web开发网 » 操作系统 » linux系统

Java 17 到底有多快?我的 8 要不要“退休”?

2021年10月18日5950百度已收录

环境准备1、JDK 版本

JKD 11openjdk 11.0.12 2021-09-15OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)JKD 16openjdk 16.0.2 2021-09-15OpenJDK Runtime Environment (build 16.0.2+7-67)OpenJDK 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)JKD 17openjdk 17 2021-09-15OpenJDK Runtime Environment (build 17+35-2724)OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)硬件配置

Intel® Xeon® Silver 4116 @ 2.1 GHz (12 cores total / 24 threads)和128 GiBRAM内存,运行RHEL 8 x86_64。

JVM设置

-Xmx3840M并明确指定垃圾收集器:-XX:+UseG1GC 对于 G1GC,低延迟垃圾收集器(所有三个 JDK 中的默认值);-XX:+UseParallelGC 对于 ParallelGC,高吞吐量垃圾收集器。执行规则

每个JDK、垃圾收集器组合都按顺序依次执行 3 次。下面的执行结果是3次执行的平均值。

测试结果Java 11 (LTS) 和 Java 16 与 Java 17 (LTS)

Java 17 到底有多快?我的 8 要不要“退休”?  java17 第1张

在不同 JDK 上使用 G1GC 的每秒计算得分。

Java 17 到底有多快?我的 8 要不要“退休”?  java17 第2张

Java 17 到底有多快?我的 8 要不要“退休”?  java17 第3张

在不同 JDK 上使用 ParallelGC 的每秒计算得分。

Java 17 到底有多快?我的 8 要不要“退休”?  java17 第4张

总结

查看 3 次单独运行的原始数据(此处未显示),机器重新分配数(B1 和 B10)在一个 JDK 和 GC 上的运行之间波动很大,通常超过10%,其他数字不会受到这种不可靠性的影响。

可以以说忽略 Machine Reassignment numbers 更好。但是为了避免挑选数据的问题,这些结果和平均值确实把它们包括进来了。

Java 17 上的 G1GC 与 ParallelGC

Java 17 到底有多快?我的 8 要不要“退休”?  java17 第5张

JDK 17 下不同 GC 每秒的计算得分。

Java 17 到底有多快?我的 8 要不要“退休”?  java17 第6张

基准测试总结

平均而言,以 OptaPlanner 为例的基准测试结果表明:对于 G1GC(默认),Java 17 比 Java 11 快 8.66%,比 Java 16 快 2.41%。对于 ParallelGC,Java 17 比 Java 11 快 6.54%,比 Java 16 快 0.37%。Parallel GC 比 G1 GC 快 16.39%。结论总而言之,JDK17 的性能表现还是非常值得升级的,至少于OptaPlanner Demo 而言。

此外,这些用例最快的垃圾收集器仍然是ParallelGC, 而不是G1GC(默认)。

测试数据来源原文:

参考链接:

评论列表暂无评论
发表评论
微信