发布时间:2025-11-03
浏览次数:0
首先,让我们先明确一些事情:
什么是 Java 21 以及如何获取它
Java 21属于Java平台的新一回版本codejock 17,Java平台是用于编撰的具备可靠性的编程语言,它浮现出诸多全新功能,还有常见问题的修复以及规模较小的改进 。
2023年9月19日会全面发布Java 21,然而此刻你能够运用候选版本构建去尝试。我们发觉开始启用Java 21的最为简便的办法是借助(https://.io/),我们亦是如此操作的。
同之前的Java 17并无二致,Java 21属于一个长期支持即LTS版本,它会延续相当长的时辰,所以,最好尽早着手运用它,看看其是否契合你 。
于其而言,这所传达的乃是要使整套代码库于Java 21环境下实现毫无瑕疵的运行,并且开展若干基准测试,以此来保证我们的用户起码能够获取到与往昔等同的性能。那就让我们着手行动起来吧。
微基准测试
我们起于分数总监微基准开头迈步,我们按期用它去判定各类变化给约束流性能造成何等影响。这些基准测试并非运作整个求解器;相反,仅是聚焦于求解器的分数计算部分施展行动。是针对JAVA使用java(JMH)予以实现的,并且在诸多Java虚拟机所分支中运行且做了充足度预热。这使我们对结果满含信心。实际上,这些数字的误差幅度仅仅是±2% 。
以下是,在 Java 21之上的,与,在 Java 17之上的,约束流性能 。
于大多数情形下,当切换至Java 21之际,性能均会稍有提升,“ ”基准测试属于唯一的异常状况,经由针对求解器开展一些额外的工作,我们极有可能亦会提升该基准测试的性能。
需要留意的是,运行这些基准测试时,我们所运用的是作为垃圾收集器的 ,而非-的G1GC。在这篇文章后续部分codejock 17,我们会对缘由加以阐释。
现实世界的基准
此刻,我们已然见到了微基准,到了把它们跟现实世界里的求解器性能予以比较的时候了,这涵盖整个求解器,并非仅仅是分数计算那一部分,句号。

在十个各异的 JVM 分支里头,我们透过手动方式去运行求解器,并且运用中值来计算速度。我们挑选了可用基准的一个子集,目的在于维持较短的运行时间;从所运用的启发法以及所执行的代码路径这方面来讲,此种选择意味着整个基准测试套件。再度把它用作垃圾收集器。结果呈现如下:
这里不存在任何令人惊奇之处,我们目睹了整体性能呈现出略微的提升态势,这对微基准测试的结果予以了证实。把它与微基准相比较的话,“ ”不能够再被看作是异常值了,这是颇为有意思的,并且会作为我们去探究可能出现的回归情况的另外一个数据点 。
缘何我们还不曾针对这些大型基准构建起正式的置信区间,所以我们没办法确凿地讲这些改进于统计层面具备显著性。可是呢,运行之际所察看到的波动极为微小,正是如此才足以让我们对结果满怀信心。
为什么使用 ?
在这些年间,我们运用其以及它的前身,我们发觉,它是该求解器的最优垃圾收集器。这理应没什么让人意外的 ,它是为高吞吐量专门定制的,而且求解器是完全受CPU限制的。相反,G1GC这种默认垃圾收集器,是为低延迟而特意打造的,这会造成颇为显著的不同。然而,情况会出现改变,我们有时得对我们的假设发起挑战。它依旧是求解器的最佳GC吗?
以下呈现出了G1GC(基线)以及与之存在的性能方面的差异,鉴于Java 21引入了分代ZGC,这是另外一种意在实现低延迟目标的GC,我们觉得把它包含进去同样会具备趣味性。
结果(通过之前的微基准测试获得)很清楚:
要是我们把 JVM 可用的那种堆大小予以增加,情形或许会产生变化,鉴于没办法很好地去扩展大堆,在运用 -Xmx1G 的时候,它可是显著的赢家 。
结论
在这篇文章中,我们展示了:
我们倡导您去试着用Java 21,而后开展切换工作。毕竟它是不用付费的,您会有机会去尽情享受最新且最为优质的Java平台 。
如有侵权请联系删除!
Copyright © 2023 江苏优软数字科技有限公司 All Rights Reserved.正版sublime text、Codejock、IntelliJ IDEA、sketch、Mestrenova、DNAstar服务提供商
13262879759
微信二维码