openjdk 的发行版很多,比如 zulu openjdk、GraalVM、AdoptOpenJDK、Red Hat OpenJDK 甚至阿里开源的 Dragonwell,本文并不是评测,只是作为普通开发人员,我们应该做什么样的选择,至于性能评测,国庆有空可能会补充。但不在本文的讨论范围内,本文要说的是普通开发人员的选择,不是那种为了几个百分点的性能就自己编译内核甚至系统的极客的选择。
至于为什么突然写这个,我想已经不重要了,因为这已经不再是热点,如果还能顺利使用 Oracle jdk 我想我也不会寻思着瞎折腾。
其实,我的选择 并不是本文开始时给出的任意一种,而是 JetBrains Runtime , 它甚至不是 被认证的 openjdk 发行版?(官方的说法是 :JetBrains Runtime is not a certified build of OpenJDK. Please, use at your own risk.)不过,这并不重要,因为今天我说的是普通开发人员的选择,你没必要考虑 性能啊、安全啊这些,需要考虑的仅仅是 用着舒服,为什么用这个呢,很简单啊,我们大家都用 intellij idea 啊,自家的 ide 跟自家的 runtime 通常能工作的更好啊。事实上也是如此,JetBrains Runtime 基于 openjdk 但是做了一些修改,这些修改包括:抗锯齿、Linux 字体渲染增强、HiDPI 支持、连字等。官方是这样说的:
JetBrains Runtime is a runtime environment for running IntelliJ Platform based products on Windows, Mac OS X, and Linux. JetBrains Runtime is based on OpenJDK project with some modifications. These modifications include: Subpixel Anti-Aliasing, enhanced font rendering on Linux, HiDPI support, ligatures, some fixes for native crashes not presented in official builds, and other small enhancements.
所以,使用 JetBrains Runtime 至少会跟 idea 更配 跟 Android studio 更配,至于性能,往往代码层面可以做的优化会远比 runtime 层面可做的多,最为紧要的是如今云服务器白菜价,大家根本不在乎那点可怜的性能。事实上,创业公司存活下来的太少,而我几乎可以肯定没有哪家是因为代码性能不好或者系统跑得慢,如果真到了哪天,到了仅靠硬件无法支撑你的业务,而必须考虑优化 runtime 的时候,这似乎已经不再是你该考虑的问题,完全可以找更专业的人来做。我的意思不是要你和稀泥,我的意思是,不要把时间花费在没意义的事情上面,虽然呢,我过去一直浪费在没意义的事上面,正是因为如此,才更有体会。
如果想考虑 cpu 占用啊、内存占用啊 等等,可以过几天再来,虽然我不再希望自己浪费时间在没多大意义的事上面,但是用来打发时间总是好的,总比用低趣的娱乐来打发时间好。
https://confluence.jetbrains.com/display/JBR/JetBrains+Runtime 这个页面的右下角标注了下载连接哦
19.10.25 更新,openjdk 各个发行版性能比较