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 月发布。

点此查看完整测试结果。


相關推薦

2022-10-27

版本主要变化 将 GraalVM 社区版的 Java 组件捐赠给上游 OpenJDK Oracle 正在向 OpenJDK 贡献 GraalVM 社区版 Java 代码,使 GraalVM 与 Java 的开发更紧密地保持一致。 按照计划,GraalVM JIT 和原生镜像将成为 OpenJDK 的一部分。Oracle 会根据

2022-09-25

OpenJDK/Java 在实现不依赖 X.Org/X11 或 XWayland 来渲染 Java GUI 应用程序的原生“纯” Wayland 工具包集成方面取得了进展。 开发人员 Alexey Ushakov 本周更新了 OpenJDK Wiki,概述 Linux 上 OpenJDK 获得 Wayland 支持的最新进展,这也是对成熟的 X

2023-04-20

Eclipse OpenJ9 是 OpenJDK 的 JVM,由 IBM 创建并捐赠给 Eclipse 基金会。此 Java 虚拟机经过优化,具备占用空间小、启动速度快以及吞吐量高等优势。 最新发布的 0.37 版本包含以下更新: 使用 GCC 11.2 作为 Linux 上的参考编译器 增加

2021-12-16

为了推动 Java 向前发展,OpenJDK 17 打算弃用,以便与旧的小应用 API ( JEP 398 )一起删除。 安全管理器功能可追溯到 Java 1.0,在我们用按键手机或者诺基亚在 Web 浏览器上下载 Java 游戏小应用(Applet)的时代,安全管理器通过

2023-08-02

f json -f 1 报告 # JMH version: 1.36 # VM version: JDK 17.0.7, OpenJDK 64-Bit Server VM, 17.0.7+7-LTS # Warmup: 1 iterations, 10 s each # Measurement: 1 iterations, 10 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations Benchmark (step) ModeCntScore E

2023-06-17

金会维护。 近日,Eclipse OpenJ9发布了v0.39版本,带来了对OpenJDK 20的支持,以及一些其他的改进和修复。 OpenJDK 20是Java的最新版本,包含了一些新的特性,如最新的向量API、更新的虚拟线程实现、外部函数和内存API等。Eclipse OpenJ

2023-06-13

EP 将正式从 JDK 21 中删除。此决策只与支持 Shenandoah GC 的 OpenJDK 版本用户有关;不会影响 G1 GC、Z Garbage Collector(ZGC)或其他现代垃圾收集器。也不影响使用 G1 GC 和 ZGC 的 Java 发行版,如 Oracle OpenJDK 和 Oracle JDK。 JDK 21 的初始候选

2024-07-30

Java 专业人士的反馈,探讨了 Oracle Java 用户迁移到基于 OpenJDK 的替代方案的原因、迁移过程和时间的详细信息,以及支持和技术专业知识对于 OpenJDK 发行版的重要性。 多年来 Oracle 在 Java 用户中的份额一直在下降,从 2020 年

2024-08-15

9 (solon) java-native (solon) go (gin) 运行时 java 17(openjdk) java 17(openj9) java 17(graalvm ce) go 19.3           测试前状态/内存 64.3Mb 51.5Mb 17.3Mb 5.7Mb          

2024-07-18

JNI 函数仍可供本地代码使用。 更多详情可查看:https://openjdk.org/jeps/472

2023-05-11

Java写成,部署在Tomcat 9的webapps目录中。目前的版本采用openjdk 17编译。 本软件是从Go语言通用代码生成器:仙童改写而来。 代码生成物是rust 1.69环境。采用Axum 0.6.18, tower web框架,tokio 1.0 , sqlx 0.3.5数据库访问层和MariaDB, MySQL 8,Pos

2022-09-19

sp;#583 [WW-5205] - 恢复内部 bean 的注入重构 #580 添加 openjdk17 以构建,删除 oraclejdk9 (EOL) 并从 oraclejdk 切换到 openjdk 以修复 Travis CI 构建 #584 将 maven-surefire-plugin 更新为 3.0.0-M7 #587 [WW-5207] 默认使用 ASM 9 #586 [WW-520

2023-10-27

新的定价政策影响,72% 的受访者表示他们正在考虑使用 OpenJDK 等开源替代品;而在没有考虑采用开源替代方案的受访者中,有 14% 的人表示,是因为他们没有想到可以这样做。 但仅管如此,Oracle 仍然是 Java 市场的强大参与者。

2023-07-04

源码。 需要注意的是,现在我的开发平台是Fedora 37上的openjdk 17。所以大家编译源码最好使用openjdk17。编译好的war包运行在apache tomcat 9.0上。 已有jdk8的用户报告默认下载的代码生成器war包在他的平台上无法运行。您如果遇到类