众所周知,Java在不同软件版本中的性能可能存在差异,并且这种差异会受到许多因素的影响。
对于开发人员和应用程序所有者来说,他们经常会遇到一些出乎意料的有趣情况,比如最新版本的Java并不一定拥有最佳的性能。
- 编译器增强 —— 每次Java版本更新,均会对其即时编译器(JIT)进行优化升级。该编译器主要负责运行时的字节码优化,其升级优化将带来代码优化效能的提升,内存管理的改良,以及特定应用类型性能的增强。
- 垃圾收集算法 —— 在 Java 中,垃圾收集器的职责是管理并回收无用内存,其在内存管理方面扮演着重要角色。随着Java版本的迭代升级,垃圾收集算法也在持续优化,以期提升垃圾收集效率,并最大程度降低由此产生的中断。这些优化对于内存密集型Java应用程序的性能表现产生了显著影响。
- JVM 调整 —— 随着新版本的Java虚拟机(JVM)的发布,各个供应商都可以对其进行优化和调整。这些优化策略可能涵盖内存管理、线程处理、同步机制等环节的改良,旨在提升特定工作负载或场景下的效能。Oracle对Java 1.8所做的性能增强就是一个典型的案例。
- 错误修复和性能增强 —— 用户经常通过反馈和实际使用情况,以帮助改进Java的新版本。这些更新主要着眼于问题修复和性能提升,旨在增强系统稳定性和整体运行效率。
- 新功能和 AP —— 开发者可借助最新版Java的力量,提升应用程序的运行效能,其中可能包含新的功能、接口和库。这些新增内容为处理特定任务提供了更有效的方式,同时也让开发者能更好地优化他们的代码。通过运用这些新的功能和接口,开发者有望提升应用程序的整体性能。
最近,有人要求我提供一些更为迅速的证据,我得出的结果真的让我大吃一惊!
为了进行评估,我在 Ampere Arm 服务器上进行了一次基础的 CPU 检测。我用的操作系统是 Oracle Linux 8,为了进行评估,我安装了最新版本的 OpenJDK 1.8、Oracle JDK 1.8、增强版的 Oracle JDK 1.8、Oracle JDK 11还有 Oracle JDK 17。
是的没错,你没看错,Oracle JDK 在这个列表中出现了两次,因为在 2022 年 10 月,Oracle 发布了增强版的 Oracle JDK 1.8,它保证能够为旧版的 JDK 1.8 应用程序提供 JDK 17 的性能。而且这个增强包已经被纳入了 Java SE 订阅和 OCI 中。
根据此次简易测试,Oracle 1.8的性能包的表现优于其他,而OpenJDK的表现位居末尾,Oracle的Performance JDK的运行速度超越了28%!
对于应用程序而言,这是一个巨大的性能飞跃!再者,Oracle的JDK 17仅滞后2%,在某些系统上甚至几乎无法察觉。鉴于Java的所有其他增强功能的优点,我将把JDK 17作为任何新应用程序的首选。
需要注意的是,尽管新版本的Java通常旨在提升性能,但在某些特定情况下,有些应用程序或代码片段可能会因JVM行为或其他因素的改变而导致性能下滑。因此,对特定应用程序进行不同版本Java的测试和基准检测是必须的,以便确定性能影响并识别出是否需要进行优化或调整。
原文链接:https://talesfromthedatacenter.com/2023/06/what-version-of-ja...
作者:admin
译者:阮煜茜
出品:Masutaa大师
关于Masutaa
Masutaa是个互联网从业者自由协作交流平台,链接行业内TOP10%人才!目前平台上已经有将近400名互联网尖端人才,其中近70%的从业者从业年限超3年。
在这个平台上,你有机会获得远程项目,也可实现地理套利,成为数字游民!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。