Java 虚拟机 OpenJ9 和 Hotspot 的 Benchmark 测试

简介:

IBM 开源了它开发的 J9 Java 虚拟机 (JVM),并将其贡献给了 Eclipse 基金会,重命名为 Eclipse OpenJ9。J9 是一个高性能可伸缩的 Java 虚拟机,是许多 IBM 企业级软件产品的核心,OpenJ9 可作为 Hotspot 的替代者用于 OpenJDK,比如需要高性能的企业级运行时环境。

那么,这个 Eclipse OpenJ9 Java 虚拟机的性能到底如何?日前,有开发者运行了一些快速的 Benchmark 测试来和 Java 虚拟机 Hotspot 进行比较,以了解其性能。

测试者在两台 Linux 设备上进行测试,他将 OpenJ9 与 OpenJDK 9 打包在一起,将其性能与现有的 OpenJDK 9 Hotspot 构建版本进行比较。另外,还有一个参考的标准是 OpenJDK 8 Hotspot 的构建版本。这三个构建文件都是从它们的预构建二进制包页面获得的。

用于本次快速 Benchmark 测试的系统之一是基于 Intel Core i9 7900X,采用 Linux Kernel 4.13,运行 Ubuntu 17.04 的系统。

而另一个系统是使用有 Xeon Gold 6138 处理器并运行 Debian GNU/Linux 9.1 的双插槽 Tyan 服务器。

分别在两个系统上,测试了三个 OpenJDK 版本,并通过 Phoronix 测试套件运行了一些可用的 Java Benchmark 测试。

先来看看在 Core i9 7900X 上,本次 Hotspot/OpenJ9 测试的结果:

首先是使用 j2dbench 进行一些图形方面的基准测试。使用 OpenJ9 时,文本渲染速度明显较慢,而 Hotspot 在其他两次测试中表现相似。在 OpenJDK 8 和 9 之间也不是有很大的区别。J2dbench 是 Sun Microsystems 为 Phoronix 测试套件贡献的 Java 图形基准测试工具之一。

使用 Java 版的 SciMark2 进行一些数学运算基准测试

可以看到,至少到目前为止,OpenJ9 的性能大部分是落后于 Hotspot 的。

基于 Java 的 Bork 文件加密工具测试,可以看到 Hotspot 依然更快

JMH 测试中,它们之间的表现不相上下

Sunflow 基准测试中,Hotspot 依然更快

来自另一个系统的 Hotspot/OpenJ9 Benchmark 测试结果与 Core i9 测试的大致相似:

作为一个开源的 JVM 项目,OpenJ9 还处于初期阶段,应该在几个月后再运行一次测试,看看性能比较如何,请保持关注。


本文作者:佚名

来源:51CTO

相关文章
|
3月前
|
存储 监控 算法
深入探索Java虚拟机(JVM)的内存管理机制
本文旨在为读者提供对Java虚拟机(JVM)内存管理机制的深入理解。通过详细解析JVM的内存结构、垃圾回收算法以及性能优化策略,本文不仅揭示了Java程序高效运行背后的原理,还为开发者提供了优化应用程序性能的实用技巧。不同于常规摘要仅概述文章大意,本文摘要将简要介绍JVM内存管理的关键点,为读者提供一个清晰的学习路线图。
|
4月前
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
730 2
|
5月前
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
73 1
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
5月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
90 5
|
5月前
|
存储 算法 Java
Java虚拟机(JVM)的内存管理与性能优化
本文深入探讨了Java虚拟机(JVM)的内存管理机制,包括堆、栈、方法区等关键区域的功能与作用。通过分析垃圾回收算法和调优策略,旨在帮助开发者理解如何有效提升Java应用的性能。文章采用通俗易懂的语言,结合具体实例,使读者能够轻松掌握复杂的内存管理概念,并应用于实际开发中。
|
5月前
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
156 1
|
5月前
|
XML Java Maven
在 Cucumber 测试中自动将 Cucumber 数据表映射到 Java 对象
在 Cucumber 测试中自动将 Cucumber 数据表映射到 Java 对象
94 7
|
6月前
|
存储 算法 Java
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
本文介绍了 JVM 的内存区域划分、类加载过程及垃圾回收机制。内存区域包括程序计数器、堆、栈和元数据区,每个区域存储不同类型的数据。类加载过程涉及加载、验证、准备、解析和初始化五个步骤。垃圾回收机制主要在堆内存进行,通过可达性分析识别垃圾对象,并采用标记-清除、复制和标记-整理等算法进行回收。此外,还介绍了 CMS 和 G1 等垃圾回收器的特点。
163 0
深入解析 Java 虚拟机:内存区域、类加载与垃圾回收机制
|
7月前
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
308 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
6月前
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
116 6

热门文章

最新文章