New Relic近日发布了一份《2023 年 Java 生态系统状况报告》,这份报告收集了上百万份线上的应用程序的数据,统计了目前生产环境中使用多的JDK版本,受欢迎的JDK供应商以及容器等的相关数据。
首先大家关心的就是目前市面上主流的JDK版本到底是多少,现在基本上有结论了,目前市面上有超过56%的应用程序使用了JDK 11,而相比之下,Java 8 的使用从2020年的84%降低到了现在的32%左右,大部分公司在这三年之间都升级到了JDK 11 或者 JDK 17这两个LTS版本上面。
相比于2022年不到1%的应用使用JDK 17来看,2023年共有超过 9% 的应用程序在生产中使用 Java 17 ,这意味着其在一年内实现了 2300% 的增长率。
在JDK 的厂商上面,Amazon这两年的增长量是比较大的,从22%上升到了31%,是目前市面上的各个JDK厂商中占比高的。
在垃圾收集器方面,在Java 11 及以上的版本中,G1垃圾收集还是比较受欢迎的,占比有65%。
因为G1通过把Java的堆分为多个大小相等的Region,可以基于这些Region进行整堆的垃圾回收,从而避免了内存碎片的产生。并且G1在回收的过程中,标记和清理的过程是并行的,可以充分利用多个CPU来缩短STW的时长,在复制的过程中是并发的,可以让复制线程和用户线程并发执行,不需要STW。