java截取字符串splitJava:Java 17到底有多快? 没想到

 

在这个快速发展的互联网时代,每1天都有新的创新和突破出现。现在,就让我们聊1聊最近互联网界的1些热门话题,看看有哪些令人瞠目结舌的事情正在发生。

整理 | 梦依丹出品 | CSDN(ID:CSDNnews)Java 17 已正式发布,该版本是自Java 11以来的首个长期支持版本Oracle 还提议将 JDK LTS发布的节奏从每31次改为每两年1次,并且每个LTS 版本的服务时间至少8年以上。

Java 版本通常是6个月1更新,时间分别在3月和9月,而这些版本的支持时间基本在半年左右

Java各个版本的生命周期据Oralce官博透露,虽然6个月版本的使用人数在增长,但大部分组织及企业更倾向于把LTS版本用在生产环境中,从而得到更加稳定可靠的服务这1点从Snyk发布的2021 Java社区报告中也可以得到证实,虽然有61.5%的人在生产中使用Java 11,但仍有1半的Java 11用户(目前使用最多的版本)在他们的生产堆栈中使用Java 8。

Oracle 推出 Free Java License

截图自Oracle官博自Java被Oralce收购以后,付费JDK就1直被人诟病,现在好了,Oracle 宣布推出JDK免费服务什么意思呢?让我们来看1下官方解释:Oracle正在为行业提供免费的,领先的Oralce JDK,包括所有季度安全更新,并包含商业和生产用途。

新许可是“Oracle 免费条款和条件”(NFTC) 许可此Oracle JDK许可证允许所有用户免费使用,甚至可以用于商业和生产用途只要没有收费,再分发是允许的开发人员和组织现在无需点击即可轻松、使用、共享和重新分发 Oracle JDK。

Oracle 将从Oracle JDK 17开始提供这些免费版本和更新,并在下1个 LTS 版本以后继续提供整整1年以前的版本没有受此更改的影响Oracle 将继续按照自 Java 9 以来的相同版本和时间表提供GPL下的Oracle OpenJDK 版本。

总结成1句话,“免费”也并没有意味着开发者可以随心所欲,因为Oracle的 NFTC 是禁止付费重新分发其 Java 而在Java 17正式发布之前,Java开发框架Spring率先在官博宣布,Spring Framework 6和Spring Boot 3计划在2022年第四季度实现总体可用性的高端基线:。

Java 17+(来自 Spring Framework 5.3.x 线中的 Java 87)Jakarta EE 9+(来自Spring框架5.3.x 线中的 Java EE 7)通过实际行动来支持 Java 17,间接呼吁开发者,

是时候使用 Java 17了。

没有要升级呢?Java 17 到底有多快?看到如此诚意满满的更新,开发者到底要没有要升级呢?尽管只需切换JDK即可体验Java 17对此,OptaPlanner网站做了1项基准测试:Java到底有多快?通过比较 JDK 17、JDK 16 和 JDK 11 来告诉你答案。

基准方法硬件:1个稳定的机器没有运行任何其他的计算要求苛刻的流程,配置:Intel® Xeon® Silver 4116 @ 2.1 GHz (12 cores total / 24 threads)和128 GiBRAM内存,运行RHEL 8 x86_64。

JDK版本JDK 11openjdk 11.0.12 2021-070OpenJDKRuntimeEnvironmentTemurin1.0.12+7 (build 11.0.12+7)OpenJDK

64-BitServerVMTemurin1.0.12+7 (build 11.0.12+7, mixedmode)JDK 16openjdk16.0.22021-070OpenJDKRuntime

Environment(build16.0.2+77)OpenJDK64-BitServerVM(build16.0.2+77,mixedmode,sharing)JDK 17openjdk17

2021-094OpenJDKRuntimeEnvironment(build17+35724)OpenJDK64-BitServerVM(build17+35724,mixedmode,sharing)

JVM 选项:-Xmx3840M并明确指定垃圾收集器:-XX:+UseG1GC对于 G1GC,低延迟垃圾收集器(所有3个 JDK 中的默认值);-XX:+UseParallelGC对于 ParallelG

C,高吞吐量垃圾收集器Main class:org.optaplanner.examples..GeneralOptaPlannerBenchmarkApp来自optaplanner-examplesOptaPlanner。

中的模块8.10.0.Final每次运行都使用 OptaPlanner 解决 11 个规划问题,例如 员工排班、 学校时间表和云优化每个规划问题运行 5 分钟日志记录设置为INFO基准测试以 30 秒的 JVM 预热(warm up)开始,随后弃。

解决规划问题没有涉及IO(除了在启动期间加载输入的几毫秒)单个CPU完全饱和它没有断地创建许多短期存在的对象,然后 GC 将它们收集起来基准衡量每秒计算的分数数量,越高越好为测试计划规划的解决方案计算分数并非易事:它涉及许多计算,包括检查每个实体每个其他实体之间的冲突。

运行次数:每个JDK 和每个垃圾收集器组合按顺序运行 3 次。上面的结果是这 3 次运行的平均值。测试结果Java 11 (LTS) 和 Java 16 Java 17 (LTS)

表 1. 在没有同 JDK 上使用 G1GC 的每秒计算得分

表 2. 在没有同 JDK 上使用 ParallelGC 的每秒计算得分

备注:查看 3 次单独运行的原始数据(此处未显示),机器重新分配数(B1 和 B10)在同1 JDK 和 GC 上的运行之间波动很大,通常超过10%,其他数字没有会受到这种没有可靠性的影响可以以说忽略 Machine Reassignment numbers 更好。

但是为了不挑选数据的问题,这些结果和平均值确实把它们包括进来了Java 17 上的 G1GC ParallelGC

表 3.JDK 17 下没有同 GC 每秒的计算得分

基准测试总结平均而言,以 OptaPlanner 为例的基准测试结果表明:对于 G1GC(默认),Java 17 比 Java 11 快 8.66%,比 Java 16 快 2.41%对于 ParallelGC,Java 17 比 Java 11 快 6.54%,比 Java 16 快 0.37%。

Parallel GC 比 G1 GC 快 16.39%多说1句在基于 JDK 15 的基准测试中,Java 15 比 Java 11 快 11.24%现在,Java 17 相对于 Java 11 的增益更少。

这是否意味着 Java 17 比 Java 15 慢?答案是否定的,Java 17 依然比 Java 15 快,因为之前的那些基准测试是在没有同的代码库上运行的(OptaPlanner 7.44 而没有是 8.10)。

没有要拿橙子苹果作比较,没有具有可比性结论总而言之,JDK17 的性能表现还是非常值得升级的,至少于OptaPlanner Demo 而言此外,这些用例最快的垃圾收集器仍然是ParallelGC, 而没有是G1GC(默认)。

作为3年后首次发布的LTS版本的Java 17给你带来了哪些惊喜?面对Go、Kotlion等JVM的强势发展,你觉得Java还能保持霸主地位吗?参考链接:https://mail.openjdk.java.net/pipermail/jdk-dev/2021-September/006037.html

https://mail.openjdk.java.net/pipermail/jdk-dev/2021-September/006037.htmlhttps://www.optaplanner.org/blog/2021/09/15/HowMuchFasterIsJava17.html

如果您喜欢这篇文章,请按赞并分享给您的社交圈。

为您推荐

java截取字符串splitJava:Java 17到底有多快? 没想到

java截取字符串splitJava:Java 17到底有多快? 没想到

Java 17 已正式发布,该版本是自Java 11以来的首个长期支持版本。在基于 JDK 15 的基准测试中,Java 15 比 Java...

2023-07-19 栏目:编程控

当前非电脑浏览器正常宽度,请使用移动设备访问本站!