• 再见,Java 8!Java 17 终于免费了,史上最快的 JDK。。


    文 | 局长

    出品 | OSC开源社区(ID:oschina2013)

    Java 17 已正式发布,新版本提供了不少新特性和功能增强。不过对于大多数项目而言,往往需要更改代码才能利用到这些新变化,但性能除外 —— 开发者只需要升级 JDK 版本,就能免费获得性能提升。

    规划调度引擎 OptaPlanner 项目负责人对 JDK 17、JDK 16 和 JDK 11 的性能基准测试进行了对比,看看 Java 17 的性能提升是否值得我们去升级。

    测试环境和流程

    1、硬件

    稳定的机器,没有任何其他计算要求的进程在运行。

    配置 Intel® Xeon® Silver 4116 @ 2.1 GHz (12 cores total / 24 threads) ,128 GiB RAM ,RHEL 8 x86_64

    2、JDKs(用于编译和运行)

    JDK 11
    openjdk 11.0.12 2021-07-20
    OpenJDK Runtime Environment Temurin-11.0.12+7 (build 11.0.12+7)
    OpenJDK 64-Bit Server VM Temurin-11.0.12+7 (build 11.0.12+7, mixed mode)
    
    JDK 16
    openjdk 16.0.2 2021-07-20
    OpenJDK Runtime Environment (build 16.0.2+7-67)
    OpenJDK 64-Bit Server VM (build 16.0.2+7-67, mixed mode, sharing)
    
    JDK 17 (下载日期为 2021-09-06)
    openjdk 17 2021-09-14
    OpenJDK Runtime Environment (build 17+35-2724)
    OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)
    
    3、JVM 选项

    启用-Xmx3840M并明确指定垃圾回收器:

    • -XX:+UseG1GC for G1GC,低延迟垃圾回收器(三个 JDK 版本的默认项)
    • -XX:+UseParallelGC for ParallelGC,高吞吐量垃圾回收器
    4、Main class

    org.optaplanner.examples.app.GeneralOptaPlannerBenchmarkApp,来自 OptaPlanner 8.10.0.Final中的 optaplanner-examples模块

    • 每次运行都使用 OptaPlanner 解决 11 个规划问题,例如员工排班、学校时间表和云优化。每个规划问题运行 5 分钟。日志记录设置为 INFO。基准测试以 30 秒的 JVM 预热开始。
    • 解决规划问题不涉及 IO(除了在启动期间加载输入的几毫秒)。单个 CPU 完全饱和。它会不断地创建许多短期存在的对象,然后 GC 将它们收集起来。
    • 基准测试会衡量每秒计算的分数数量,分数越高代表性能越好。为提议的规划解决方案计算分数并非易事:它涉及许多计算,包括检查每个实体与每个其他实体之间的冲突。
    5、运行次数

    每个 JDK 和每个垃圾回收器组合按顺序运行 3 次。下面的结果是这 3 次运行的平均值。

    测试结果

    Java 11 (LTS) and Java 16 versus Java 17 (LTS)

    G1GC versus ParallelGC on Java 17

    总结

    基于 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%

    简而言之,最新的 JDK 更快,高吞吐量垃圾回收器比低延迟垃圾回收器更快。

    因此,Java 17 带来的性能提升非常值得升级,更重要的是它可以免费商用,而且还是 LTS 版本。所以你还要坚持 Java 8 一万年不动摇吗?

    原文:https://www.optaplanner.org/blog/2021/09/15/HowMuchFasterIsJava17.html

    近期热文推荐:

    1.1,000+ 道 Java面试题及答案整理(2021最新版)

    2.别在再满屏的 if/ else 了,试试策略模式,真香!!

    3.卧槽!Java 中的 xx ≠ null 是什么新语法?

    4.Spring Boot 2.5 重磅发布,黑暗模式太炸了!

    5.《Java开发手册(嵩山版)》最新发布,速速下载!

    觉得不错,别忘了随手点赞+转发哦!

  • 相关阅读:
    .Net -- NLog日志框架配置与使用
    Prism -- 简介
    Prism.WPF -- Prism框架使用(下)
    Prism.WPF -- Prism框架使用(上)
    Win32Api -- 关闭当前应用
    WPF -- 一种圆形识别方案
    C#语言特性及发展史
    WPF -- 一种实现本地化的方法
    DEV中右键菜单如何只在非空单元格上显示?
    打开一个窗体,其他窗体处于不可编辑状态
  • 原文地址:https://www.cnblogs.com/javastack/p/15311501.html
Copyright © 2020-2023  润新知