OracleJDK 17真的香?

一、前言

2021年9月14日,Oracle继JDK 8u202永久免费版本后,推出OracleJDK 17免费版本(目前免费3年),一改JDK 8u202到JDK17版本间的商业生产收费之态,用户不仅可以在内部使用,也可以发送给客户使用(符合美国进出口管制情况下),具体条文见:Java 17 available now。但有趣的是,在Oracle的FAQ中指出:JDK17之后的版本都会遵守NFTC协议(免费),但是有时间期限,免费期之后会收费(OTN),所以OracleJDK 17 真的香吗?看官请移眼往下看。

  • 1.1、JVM-Ecosystem-Report-2018
    在这里插入图片描述
  • 1.2、JVM-Ecosystem-eport-2020
    在这里插入图片描述
    在这里插入图片描述
    根据snyk关于JVM生态2018年与2020年的调查(详情可看文章参考),可以看出OracleJDK用户持续下降(70%—>24%),同时JDK用户对收费大多持不支持态度(86%)。因此,OracleJDK17的推出,不无可能是Oracle不想放弃JDK收费的机会,但是迫于JDK用户的急剧下降,才推出如此版本的。
    Oracle JDK的许可
    在这里插入图片描述

另外,大家需要知道的是OracleJDK17的免费和OracleJDK 8u221之前的免费存在巨大的区别:OracleJDK 8u221之前版本是可以无限期免费使用的,而OracleJDK17只有3年的免费期,期限一过,再使用就必须商业收费(前提是Oracle保持承诺,所有LTS都免费3年)。

文章参考
1、Oracle JDK17及以后的版本真的都免费么?
2、JVM-Ecosystem-Report-2018
3、JVM-Ecosystem-eport-2020

二、OracleJDK 17

OracleJDK 17版本的推出,为开发者提供了不少新特性和功能增强。对于OracleJDK 17之前的版本,对于大多数项目而言,往往需要更改代码才能利用到这些新变化,以及需要对JVM进行调优才能获得性能的提升。但OracleJDK 17版本的推出,让开发者能轻易的、免费的对应用进行性能提升与构建。

引用:OptaPlanner(规划调度引擎)项目负责人对 OracleJDK 17、OracleJDK 16 和 OracleJDK 11 的性能基准测试与对比,看看 OracleJDK 17 的性能提升是否值得我们去升级。
测试结果:基于Java 11 (LTS) 、Java 16 versus and Java 17 (LTS)

  • 在不同版本 JDK 上使用 G1GC 的每秒分数计算次数

    在这里插入图片描述
  • 使用 ParallelGC 在不同版本 JDK 上每秒计算分数
    在这里插入图片描述
    在这里插入图片描述
    注释:查看 3 次单独运行的原始数据(此处未显示),机器重新分配数(B1 和 B10)在同一 JDK 和 GC 上的运行之间波动很大。 通常超过10%。其他数字不会受到这种不可靠性的影响。可以说忽略机器重新分配数字会更好。但是为了避免挑选数据的问题,这些结果和平均值确实包括它们。
  • 具有不同 GC 的 JDK 17 每秒的评分计算次数
    在这里插入图片描述
    在这里插入图片描述
    平均而言,对于 OptaPlanner 用例,这些基准测试表明
  • 对于 G1GC(默认),JDK 17 比 JDK 11 快 8.66%,比 JDK 16 快 2.41%
  • 对于 ParallelGC,JDK 17 比 JDK 11 快 6.54%,比 JDK 16 快 0.37%
  • ParallelGC 比 G1GC 快 16.39%

对于 OptaPlanner 用例(这些用例最快的垃圾收集器仍然是 ParallelGC,而不是 G1GC-默认)而言,JDK17 版本中获得的性能非常值得升级。
参考文章
1、How much faster is Java 17?

三、OpenJDK

OpenJDK与OracleJDK的区别

  • 功能相同可以互相切换
  • 从Java 11开始,Oracle JDK构建和OpenJDK构建在本质上是相同的
  • 在外观和包装上有一些不同

主流OpenJDK发行商

四、Thinking

最近公司在对JDK版本是否进行更换进行评审,因此,在此写下自己的一些见解。从技术人员的层面上来说,OracleJDK17 的推出,确实帮助开发者解决了很多性能提升上的问题,提升了应用的响应速度,让开发人员更加专注于业务的开发。但简单来说,在版本稳定性上,当过了OracleJDK 17的免费期限之后,OracleJDK 17的商业收费标准是什么?会变吗?应用是否会因为JDK版本的升级而更换?另外它是否会像HW那样,因为某些因素而被禁用,这些都是风险所在。在技术沉淀上来说,开发人员确实从复杂且难懂的底层技术中解脱出来了,更加专注于业务的开发,但这样也使得整个应用更加依赖于第三方,自身并没有技术积累,从而丧失产品的核心技术竞争力。相信更多层面的考虑,各位看官比我看得更加透彻,这里我就抛砖引玉了,欢迎各位多多留言,一起探讨。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值