本号复活!!将每天晨起写的微博,修修改改后放回这里。
望望天空,今年是升级jdk的好年份。突然发现多了好多的选择,一轮的挑挑拣拣后心满意足。
JDK 8:原本说jdk8 u202之后就不开放下载了,后来又重新开放,现在出到了u252,但不掏钱的话还是只能给笔记本、桌面电脑、开发使用。
JDK 11:LTS长期支持版,按三年一个周期,下一个LTS版是JDK17。所谓的长期支持,指在jdk 12,13....中发现的bug,会移植回到JDK11。但是, O记 JDK 11里, zgc是商业功能,是要付费的。
说来说去就是要收钱,跳过,往下看。
O记把zgc捐献给OpenJDK了,可以随便用。
上面提到的JDK8后续的改动,也会同步到OpenJDK。
但OpenJDK放的是纯源码,(注:hg.openjdk.java.net/jdk/jdk 的代码,也已经mirror到github.com/openjdk/jdk) ,大家要用的二进制安装版,就需要供应商的prebuilt制作。
O记的OpenJDK prebuilt放在 jdk.java.net上,但是,它只放着六个月内最新的一个版本,再次跳过。
终于,本篇的主角出场:AdoptOpenJDK (adoptopenjdk.net),一个专门为OpenJDK制作安装版的地方,维护了JDK8u222 开始的所有版本,也就是Oracle关上大门后的版本。
它也刚加入了Eclipse基金会,也算有了字头,可以信赖。
ElasticSearch7里带的JDK 14,就是用它家的发行版。
说完供应商,终于说到具体版本。
jdk 11之后对zgc的修复和增强,并没有移植回来11。所以如果想用zgc,就要用尽量新的版本。不过,zgc的最终版,还要等九月份的JDK 15。
如果还在用JDK8,建议升级到AdoptOpenJDK提供的u252。
之前在我们u102遇到过神秘的CPU 空闲跳崖式的突降,升级到u192解决。
完整的release notes在此:https://adoptopenjdk.net/release_notes.html
我自己老眼昏花,有同事瞄到一条比较吸引的,S8048556: Unnecessary GCLocker-initiated young GCs。以前写jni(如gzip)的副作用博客,有一条就是这个bug,原本只是补一个ygc,却变成了两次。
另外,zookeeper 3.5.5的release notes,也神秘兮兮地专门提醒大家要用u211以上,不知吃了什么亏。
如果你在一家重视license的公司,还在用jdk8的,升级到AdoptOpenJDK 8u252。如果想用ZGC,使用AdoptOpenJDK的JDK14,或者等JDK15。