⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 oschina.net/news/114247/ 「局长」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

OpenJDK 14 与 OpenJDK 8 及多个主要版本的性能基准测试对比。

OpenJDK 14 已于近日 GA,其在性能方面是否有改进、以及有哪些改进引起了不少开发者的关注。本文将会介绍通过运行新的基准测试以考察从 OpenJDK 8 至 14 的所有主要发行版本,同时考察跨多个工作负载的 JVM 性能,以及 OpenJDK 14 与 JVM 先前版本相比性能如何。

此次测试通过在被测试的每个发行版上使用相同的 Java 字节码编译的 Java 程序来查看 JVM 的性能,并使用被测软件包的参考/上游编译版本。为了保证测试受干扰的因素将降至最低,每次都使用相同的选项,除了交换用于测试每个发行版的 OpenJDK x86_64 Linux 构建之外,没有进行任何其他更改。

通过使用 Phoronix 的测试套件,测试内容包含从 SPECjbb 到 Java 2D 工作负载。

测试环境以及测试机器配置:

首先通过使用 Java 2D 基准测试对 Java 图形管道的性能进行压测,可以看到文本渲染性能一直稳步提升,直到第 12 版达到最高点,然后逐渐下降为目前 13 和 14 的水平,与 OpenJDK 8 比较相似。

而在 Java 2D 的图像渲染性能方面,它们的水平基本保持一致,但是 OpenJDK 14 以微弱的的性能优势成为了最好性能的那个。

这里还测试了使用矢量图形的渲染效果,水平基本保持一致。

通过进行非常基本的 Java SciMark 微基准测试,可以看到 OpenJDK 8 目前为止是最快的,并且自 OpenJDK 9 至 14 以来,性能基本上持平。OpenJDK 的运行速度约为 OpenJDK 8 的 88%。

通过使用 Java Bork 文件加密软件包进行测试,在经过测试的版本中,性能基本上没有变化。

自 OpenJDK 8 以来,DaCapo 的 H2 基准被建模为类似于 JDBCbench 的内存中(in-memory)基准,其性能得到了很好的提升,与此前的版本相比,OpenJDK 14 再次以微弱的优势获得了第一名。

可以看到,基于 Python Pybench 的 Jython 基准测试也是 OpenJDK 8 拥有最佳成绩的众多案例之一。

在运行 Daytrader 基准测试的 Tradebeans 测试中,OpenJDK 14 再度以微弱的优势拿下最佳的成绩。

就像打乒乓球一样,Renaissance 的 Scala Dotty 基准测试提供了一个类似的例子,说明 OpenJDK 的性能也会上下波动。在此次测试中,OpenJDK 14 又比最近的版本好一些。

在其他一些 Renaissance 基准测试中,OpenJDK 11〜12 的性能反而最差,而 OpenJDK 14 提供的性能与 OpenJDK 8 类似。

在使用 Jenetics+Futures 遗传算法的 Renaissance 基准测试中,所有版本的性能基本保持一致。

通过观察使用 Apache HBase 进行的这几个基准测试,可以发现 OpenJDK 8 运行最快,或者这几个 Java 版本的性能基本持平。

在使用 SPECjbb 进行的基准测试中 ,OpenJDK 8 是迄今为止最快且明显拉开距离的版本。自版本 11 起,OpenJDK 的 SPECjbb 性能有所提高,不过在运行 Ubuntu Linux 的 AMD Ryzen 9 3950X 系统上,任何版本的速度均未达到 OpenJDK 8 的速度。

结论:

当对所有执行的 Java 基准测试结果取几何平均值时,OpenJDK 8 毫无疑问是最快的 Java 版本。业界经常听到有关 OpenJDK 8 仍可提供最佳性能的消息,以及为什么英特尔的 Clear Linux 在有众多选择的情况下仍坚持该版本的原因。从本文的测试结果来看,这不足为奇。

好消息是,从这种几何意义上来看,OpenJDK 14 是经过测试的发行版中第二快的版本。与之前的版本相比,其领先优势虽然很小,但整体来看毕竟是在保持进步。

文章目录