OracleJDK 17真的香?

  • 一、前言
  • 二、OracleJDK 17
  • 三、OpenJDK
  • 四、Thinking

一、前言

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发行商

  • Red Hat OpenJDK(LTS支持)
  • Zulu OpenJDK (LTS支持)
  • Liberica JDK (LTS支持)
  • AdoptOpenJDK(LTS支持)(推荐)
    由于AdoptOpenJDK (LTS支持)是基于社区Oracle JDK孵化出来的,管理和维护都是同一批人(Rod MicKenna),所以选择AdoptOpenJDK替代Oracle JDK是不错的选择。

四、Thinking

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

OracleJDK 17真的香?相关推荐

  1. 4a怎么打开sqlserver_百元级别荣耀路由X3和小米路由4A,哪款真的香?

    百元级别荣耀路由X3和小米路由4A,哪款真的香? 路由器是每个家庭的网络中枢,那么如何选购一款经济又实惠的路由器呢?尤其是从网络信号的稳定性.穿墙力度等方面,怎么才能买到最适合自己的路由器呢?今天id ...

  2. 5款100元千兆WiFi5路由器,刷机玩真的香

    我"捡"了5款100元路由器,真的香 2019年09月24日 我淘了5款百元路由器,是真的香. 移动互联网高速发展的今天,我们对网络的需求.要求也日益提高.5G 的普及和真正实用又 ...

  3. Swagger3.0 天天刷屏,真的香吗?

    目录 前言 官方文档如何说? Spring Boot版本说明 添加依赖 springfox-boot-starter做了什么? 撸起袖子就是干? 定制一个基本的文档示例 文档如何分组? 如何添加授权信 ...

  4. Android ViewPager2 真的香么?

    Google 前段时间出了新品 ViewPager2,据说意在替代旧版 ViewPager,功能更强大使用更方便:真的这么香么,小菜尝试学习一下! 优势 支持 RTL 布局,稍后介绍: 支持垂直方向切 ...

  5. 一致吗 驱动_iPhone 12无线充电真的香吗?

    2020年10月14日凌晨1点, 苹果发布会又来了, 开场就是苹果CEO库克在总部贾伯斯剧院闪亮登场! 没错! 各位果粉心心念念的 iPhone 12 它走来了! 如之前爆料所言,本次发布会共推出了4 ...

  6. Ubuntu下的lammps GPU加速(真的香)

    参考 Lammps实现GPU加速,博客界面很好看. 显卡驱动安装(本文默认为英伟达) - 检查自己的驱动是否安装成功 nvidia-smi 如果安装成功会有如下输出: 如果未安装会有如下结果: nvi ...

  7. 网传一些著名互联网公司的实习工资,某节真的香啊

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:硬刚一周,3W字总结,一年的经验告诉你如何准备校招! 个人原创100W+访问量博客:点击前往,查看更多 @IT程 ...

  8. .NET6下周发布真的香,可不少人却只会.NET Framework!

    倒计时7天,.NET6+VS2022+C#10将同时发布正式版,宣告.NET步入全新篇章,各种新语法.新框架.新技术都如约而至,令人期待!近年来,.NET跨平台持续推出新版本,开源社区也不断涌现各种优 ...

  9. 彻底扔掉PostMan了,这套国产替代方案是真的香…

    众所周知,目前市面上有不少API相关的工具,比如 Postman.Apipost 等.最近我也尝试了下 Apipost ,简单说下我的一些使用体验. 先说说优点. 总体来说,Apipost 还是比较香 ...

  10. Nacos,阿里开源,是真的香!!

    作者:废物大师兄 来源:www.cnblogs.com/cjsblog/p/14007311.html 作者主页:https://home.cnblogs.com/u/cjsblog/ 本文探讨 Na ...

最新文章

  1. 使用Fiddler抓取手机HTTP流量包
  2. java synchronized静态_Java中Synchronized的用法(简单介绍)
  3. OpenGL之裁剪与颜色混合
  4. 如何创建php文件,PHP如何生成.php程序文件
  5. android调用fragment的方法,AndroidX下使用Activity和Fragment的变化
  6. Spring线程池开发实战
  7. oracle12c创建pdb用户6,ORACLE12C PDB创建默认表空间和用户语句
  8. 团队开发之个人博客八(4月27)
  9. 拦截器 参数不过去 的解决方法
  10. Matlab The Bisection Method
  11. JS精粹知识点和我的解释
  12. New year is coming-2007
  13. svpwm c语言程序,SVPWM的实现过程附C代码.doc
  14. Logistic回归分析
  15. BurpSuite系列(四)----Scanner模块(漏洞扫描)
  16. 使用showdown.js打造自己的markdown编辑器,支持table
  17. amdr7-4700linux,Yoga14s 2021 ARH R7 4800H 安装Arch Linux
  18. WinSCP下载安装及使用
  19. 盘点2015年手机芯片行业:多极世界来临
  20. Springboot毕设项目酒店地下停车场管理系统47g66java+VUE+Mybatis+Maven+Mysql+sprnig)

热门文章

  1. 扒一个超棒的stm32的开源usb-can项目,canable及PCAN固件
  2. 小米游戏本bios_小米游戏本2019款,原来他才是电脑的终极境界
  3. appium的滑动操作总结
  4. 基于STM32电压检测和电流检测
  5. 51单片机的交流电流检测系统设计(程序+原理图+PCB)
  6. html5红外遥控,自己写的单片机万能红外遥控解码
  7. Python编程工具IDLE快捷键
  8. php对接腾讯云直播
  9. ASP.NET Core 引用其他程序集项目里面的 Controller 控制器
  10. 一年级上册计算机教学计划,新版人教版一年级上册教学计划