JDK17 来了,将给我们带来什么变化?

本贴最后更新于 820 天前,其中的信息可能已经时移世改

前几天,我的一个学生在我们的班级群里说一个问题,“jmeter压力机,要在jdk8,还是jdk17下运行?”。

Snipaste202201191601.png

当时,我只是稍稍的瞄了一眼,没有细看,我以为学生问的是jdk1.7下能否正常运行jmeter,我就说,‘你先干,看能不能运行’,因为,我们课程中说了,jmeter是不能在jdk1.7下运行的,我想通过要学生自己动手,来加强对这个知识的印象,结果,过了一段时间,学生告诉我,他说的是 jdk17,不是jdk1.7,而且他们项目组得到一个惊人的结论,他们的项目,在jdk8时,tps能达到2w,在切换到jdk17之后,tps能达到2.6w。

Snipaste202201191602.png

Snipaste202201191603.png

这下,真把我‘吓’住了。我的天啊,jdk都升级到了17了,他们切换jdk后,性能居然提升了超25%。

虽然,我们不能用一个实例,就说jdk17对所有项目,都有这么强的性能提升,但是,却深深的打动了我。这个版本,可能会在一段时间后,大量吸粉。

现在你去访问oracle的官网,找到java产品,我们就会看到,早在2021年9月14日,oracle就发布了java17LTS长期支持版本

Snipaste2022011904.png

看看官方最权威的新闻稿怎么说:

来,接下来,我们来看一个第三方机构OptaPlanner在2021年9月15日发布的对java17的测试结果分析文章

Snipaste202201191605.png

在不同版本的jdk中,使用G1垃圾回收机制,运行相同的测试代码,jdk17的平均性能,比jdk11提升8.66%,比jdk16提升2.41%。

Snipaste202201191606.png

在不同版本的jdk中,使用parallel垃圾回收机制,运行相同的测试代码,jdk17的平均性能,比jdk11提升6.54%,比jdk16提升0.37%。

Snipaste202201191607.png

jdk17,分别使用G1垃圾回收机制和Parallel垃圾回收机制,测试结果发现,使用Parallel垃圾回收机制要比G1垃圾回收机制,平均要快16.39%

从上面的数据,我们可以得出:jdk17,不管是在G1GC还是ParallelGC垃圾回收机制上,都要比jdk11、jdk16要快,而jdk17中ParallelGC垃圾回收机制又要比G1GC要快。

虽然,这篇研究文章,没有对我们现在国内大家‘坚守’的java8,进行对比,但是,我们应该是不用怀疑,jdk17的性能要比jdk8要快很多吧。

学习过java,用java做过开发,或者用过java语言开发的产品的同学,应该都有深刻的印象,那就是,要下载jdk的时候,需要去注册登记,然后才能下载,对于英文不好的,这个时候,是不是特别想YY几句oracle?

现在,不用了。

在java17开始,oracle正式提供免费的jdk,包括季度安全更新,新的这个许可,是“Oracle 免费条款和条件(NFTC)” 许可。该许可允许所有用户免费使用,甚至可以用于商业和生产用途,只要你是不是在它的基础上做二次商业收费分发。说人话,就是,只要你不是把它,改吧改吧卖钱,你就可以免费试用它。 你想想,全世界把jdk改吧改吧,再买给别人用的,有几家公司,你的公司,应该不在其列吧。所以,从java17开始,你可以‘放飞自我’的试用。

进入,如果你去看oracle的官网,找到java17,你应该已经看到有小版本号了,因为,已经距离发布有一段时间了,已经有了更新包。而且,官方说了,这是一个LTS,长期支持版本,将与全球 Java 开发人员通过 OpenJDK 社区 和 JCP (Java Community Process) 共同合作支持到至少2029年9月。

现在,国内很多很过公司,用的java版本都是8,特别是生产环境,都不愿意去升级。为什么?一个很重要的原因,就是要保证生产的稳定运行。因为,一个java-jdk版本的升级,对于项目来说,真有种 “洗经伐髓” 的痛苦。我曾经就亲身体验了java7,升级到java8,那一段时间的经历,对于一个项目、一个测试人员来说,可能都是不愿意再去回忆的。所以,你看到,java8发布了这么多年了,java11、java16也都有一定市场份额了,但是,java8,还是那么稳居宝座。

我们是做性能测试的,对于java8的性能,可以说,早就“受够了!”,现在,java17能在性能上有巨大提升,而且还可以免费授权使用,会不会成为我们下一个大面积使用的版本呢?虽然,不能保票说能达到java8的规模,但是,它肯定会在不久的将来,占用一份很大的市场。

虽然,现在对于java7的具体性能研究还比较少,国内还没有多少项目真正敢用,但是,我们做性能测试的,如果不能跟上性能提升的步伐,我们也就是那个‘瓶颈’,会被‘优化’调的,赶紧学习起来吧。

回帖
请输入回帖内容 ...