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

相关文章
|
9月前
|
算法 IDE Java
Java 项目实战之实际代码实现与测试调试全过程详解
本文详细讲解了Java项目的实战开发流程,涵盖项目创建、代码实现(如计算器与汉诺塔问题)、单元测试(使用JUnit)及调试技巧(如断点调试与异常排查),帮助开发者掌握从编码到测试调试的完整技能,提升Java开发实战能力。
825 0
|
缓存 监控 负载均衡
如何提升 API 性能:来自 Java 和测试开发者的优化建议
本文探讨了如何优化API响应时间,提升用户体验。通过缓存(如Redis/Memcached)、减少数据负载(REST过滤字段或GraphQL精确请求)、负载均衡(Nginx/AWS等工具)、数据压缩(Gzip/Brotli)、限流节流、监控性能(Apipost/New Relic等工具)、升级基础设施、减少第三方依赖、优化数据库查询及采用异步处理等方式,可显著提高API速度。快速响应的API不仅让用户满意,还能增强应用整体性能。
|
10月前
|
安全 Java 测试技术
Java 项目实战中现代技术栈下代码实现与测试调试的完整流程
本文介绍基于Java 17和Spring技术栈的现代化项目开发实践。项目采用Gradle构建工具,实现模块化DDD分层架构,结合Spring WebFlux开发响应式API,并应用Record、Sealed Class等新特性。测试策略涵盖JUnit单元测试和Testcontainers集成测试,通过JFR和OpenTelemetry实现性能监控。部署阶段采用Docker容器化和Kubernetes编排,同时展示异步处理和反应式编程的性能优化。整套方案体现了现代Java开发的最佳实践,包括代码实现、测试调试
325 0
|
10月前
|
人工智能 Java 测试技术
Java or Python?测试开发工程师如何选择合适的编程语言?
测试工程师如何选择编程语言?Java 还是 Python?多位资深专家分享建议:Python 入门简单、开发效率高,适合新手及自动化测试;Java 生态成熟,适合大型项目和平台开发。建议结合公司技术栈、个人基础及发展方向选择。长远来看,两者兼通更佳,同时关注 Go 等新兴语言。快速学习与实践才是关键。
|
Java 流计算
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
254 2
Flink-03 Flink Java 3分钟上手 Stream 给 Flink-02 DataStreamSource Socket写一个测试的工具!
|
Java 测试技术 Maven
Java一分钟之-PowerMock:静态方法与私有方法测试
通过本文的详细介绍,您可以使用PowerMock轻松地测试Java代码中的静态方法和私有方法。PowerMock通过扩展Mockito,提供了强大的功能,帮助开发者在复杂的测试场景中保持高效和准确的单元测试。希望本文对您的Java单元测试有所帮助。
2377 2
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
318 5
|
测试技术 Linux 虚拟化
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
详细的VMware虚拟机安装macOS Big Sur的保姆级教程,包括下载VMware和macOS镜像、图解安装步骤和遇到问题时的解决方案,旨在帮助读者顺利搭建macOS虚拟机环境。
2403 3
iOS自动化测试方案(五):保姆级VMware虚拟机安装MacOS
|
存储 人工智能 Java
将 Spring AI 与 LLM 结合使用以生成 Java 测试
AIDocumentLibraryChat 项目通过 GitHub URL 为指定的 Java 类生成测试代码,支持 granite-code 和 deepseek-coder-v2 模型。项目包括控制器、服务和配置,能处理源代码解析、依赖加载及测试代码生成,旨在评估 LLM 对开发测试的支持能力。
639 1
|
SQL JavaScript 前端开发
基于Java访问Hive的JUnit5测试代码实现
根据《用Java、Python来开发Hive应用》一文,建立了使用Java、来开发Hive应用的方法,产生的代码如下
362 6