
首先让我们先明确一些事情什么是 Java 21 以及如何获取它Java 21属于Java平台的新版本, Java平台作为编写的可靠编程语言, 它带来诸多新功能, 还有常见问题修复和较小改进。Java 21会在2023年9月19日全面对外发布, 不过当下你能够运用候选版本构建去进行尝试。我们发觉开启使用Java 21的最为简便的方式是借助, 我们也是依此去进行操作的。跟之前的Java 17相同, Java 21属于一个长期支持LTS版本, 它会延续相当long的一段时间, 所以, 最好尽早着手运用它, 瞧瞧它是否契合你。这件事儿对于相关方而言, 这明确表示要保证整个代码库在Java 21环境下完美地运行着, 同时也要开展一些基准测试来确保我们的用户起码能够获取到跟以前一样的性能表现。那就让我们着手行动起来吧。微基准测试我们会起始于分数总监微基准, 我们规律性把它用以判明各类变化对于约束流性能的作用, 这些基准测试并不运转整个求解器, 反倒, 它们仅仅着重于求解器的分数计算部分, 它们是借由Java (JMH)达成的, 并且于诸多Java虚拟机 (JVM)分支里运行且予以充分的预热, 这使我们对讲这些话讲一些人是因为对结果满怀信心, 实际上, 这些数字的误差幅度仅为±2%。如下是, Java 21之上的, 约束流性能, 以及Java 17之上的, 约束流性能:在多数情形下, 换至 Java 21 之际性能往往会稍有提升。“ ”基准测试是仅有的异常情况, 借助对求解器开展一些额外的工作, 我们极有可能也会提升该基准测试的性能。要留意的是, 我们运行这些基准测试之际, 采用某个而非默认的 G1GC 的垃圾收集器 (GC) , 于这篇文章后续部分, 我们会阐明相关缘由。现实世界的基准现此刻, 我们已然目睹了微基准, 到了把它们与现实世界里的求解器性能予以比较的时候了, 这涵盖整个求解器, 并非仅仅局限于分数计算部分。10个不同的JVM分支里, 我们手动运行求解器, 用中值计算速度。为保持较短运行时间, 我们选了可用基准的子集, 就所使用的启发法与所执行的代码路径来说, 该选择代表全部基准测试套件。再次把该选择用作垃圾收集器。结果如下:这儿不存在什么惊喜之处, 我们目睹了总体性能呈现出些许程度的提升, 这证实了进行微基准测试所获得的相关结果。相较于那项包含微基准的数据, 这儿不再被看作成是所谓的异常值, 这一状况极具趣味性。我们还会把这样的情况当作是开展调查可能产生的另一类回归的另外一个数据点。因为我们还没给这些大型基准建造正式的置信区间, 所以我们没办法肯定地讲这些改进在统计方面具有显著性, 然而, 运行当中观察到的波动足够小, 所以足够让我们对结果充满信心。为什么使用 那些年, 我们使用了它及其前身, 期间, 我们发觉它属于该求解器的最佳垃圾收集器, 这理应没什么可稀奇的, 它是为高吞吐量而专门定制的, 求解器是完全有着 100% CPU 限制情况的, 可是, G1GC也就是默认垃圾收集器是依据低延迟来打造的量身定制, 这便会出现颇为显著的差别, 然而, 世事会变, 我们有时得去质疑我们原本的设想, 它照旧是求解器的最佳 GC 吗?有这样一幅图, 它展示出了G1GC基线以及和其之间所存在的性能方面的差异, 因为Java 21引入了分代ZGC, 而这是另外一种旨在达成低延迟效果的GC, 所以我们觉得把它也涵盖在其中同样会是饶有趣味的。结果通过之前的微基准测试获得很清楚要是我们将JVM能够使用的堆大小予以增加的话, 状况恐怕就会发生变化, 鉴于没办法很好地对大堆进行扩展, 当利用 -Xmx1G 之时, 它可是明确的赢家。结论在这篇文章中我们展示了能够享受最新且最好的 Java 平台, 你将, 毕竟它无不是免费的, 我们鼓励您去尝试 Java 21 并且进行切换。