Java 性能基准测试:从 OpenJDK 8 到 OpenJDK 19

科技媒体 Phoronix 对从 OpenJDK 8 到 OpenJDK 19 的多个 JDK 版本进行了性能基准测试。此外,作为参考对比,还加入了两个替代实现方案:OpenJ9 和 GraalVM CE。

测试环境:

  • 搭载 Intel Core i5 12600K CPU、运行 Ubuntu 22.04 LTS 的电脑
  • 参与测试的所有 OpenJDK 构建均来自官方 OpenJDK 二进制文件,并使用测试时的最新版本
  • 为了保持默认/开箱即用状态,在测试期间没有将额外的参数传递给 Java 实现,以查看 JVM 实现的参考性能

接下来看看值得关注的测试结果。

在基本的 Java SciMark 2.0 测试中,不同版本的 JDK 性能没有太大差距。至于 JVM 性能方面,相对来说,OpenJ9 性能较好(针对 JDK 8/11 的 OpenJ9 构建),并且与最快的 OpenJDK 测试结果保持一致。而 JDK 18 与 GraalVM CE 构建相对来说则慢得多。

在稀疏矩阵乘法测试中结果稍有变化,OpenJ9 的执行速度比 OpenJDK 和 GraalVM 慢得多。

对于密集 LU 矩阵分解,OpenJ9 JDK 8/11 的性能明显超过其他版本,执行速度比其他构建快得多。

在 Bork 文件加密器方面,OpenJ9 的执行速度比其他经过测试的 JVM 慢。

在 H2 DaCapo 基准测试中,OpenJ9 的表现也比其他版本慢。GraalVM CE 在此项测试产生了最快的结果,而 OpenJDK 18 和 19 都是成功测试的最快的 OpenJDK 版本。

DaCapo Benchmark 的 Jython 测试还显示,OpenJDK 18 和 19 EA 比旧版本和替代实现略有领先。

在 Renaissance 的一些基准测试中,OpenJDK 8 仍然能够以微弱优势领先。

与 OpenJDK 相比,Oracle 的 GraalVM CE 在 Renaissance 的一些基准测试中表现非常出色。

而 OpenJ9 未能成功运行部分 Renaissance 基准测试。

对于几何平均值测试 (Geometric Mean),OpenJDK 18,尤其是 OpenJDK 19 早期访问版本的整体性能看起来相当不错,在某些情况下最终等同或优于旧的 OpenJDK 8 构建。GraalVM CE 在特定基准测试中的表现也非常出色,OpenJ9 在一些特定领域也是如此。OpenJDK 19 GA 预计在 9 月发布。

点此查看完整测试结果

优秀的个人博客,低调大师

微信关注我们

原文链接:https://www.oschina.net/news/200995/java-openjdk-benchmark-mid22

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario,低调大师唯一一个Java游戏作品

Mario,低调大师唯一一个Java游戏作品

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。