网络监管控理服务New Relic发布2023年Java生态系调查报告,官方指出,在过去几年由于Java新版本的发布和容器应用的兴起,让Java的使用情况出现变化。New Relic报告显示Java 17的采用率正飙升,而且由于AWS(Amazon子公司)的OpenJDK版本Amazon Corretto,受到云计算开发者的大量采用,使得Amazon现在成为最受欢迎的JDK供应者。
Java是一种高端语言,由太阳微系统公司开发,其目标是要设计一个可在各种计算机硬件和操作系统上运行的程序语言,由于Java的可移植性和跨平台等特性,目前是热门的程序语言之一,各产业和领域都可以看到Java应用,Java拥有丰富的函数库,并受到良好的维护。
从前一年New Relic的Java生态系大调查中,就可以看出甲骨文(Oracle)Java市场占有率衰退的端倪,过去许多开发人员的JDK来自甲骨文,而由于OpenJDK项目的出现,使得开发者有更丰富的选择。在2020年,甲骨文位居领先定位,约占Java市场的75%,而到了2022年,市场占有率已经不到之前的一半,反而Amazon已经上升到22.04%。
到了2023年,Amazon已经正式超过甲骨文,成为目前最受欢迎的JDK供应商,市场占有率继续增长达到31.35%,而甲骨文则继续下滑,目前市场占有率为28.75%。
根据New Relic的观察,容器已经是Java应用的最大宗,报告显示70%的Java应用程序用于容器。越来越多Java开发者在容器中使用多核心配置,目前仅有36%还在使用单核心配置,大部分皆已移向多核心配置,最高比例是8核心配置占29%,较2022年增长9%。
不过,New Relic表示,整体而言比起非容器环境,开发者在容器云计算环境中,更倾向使用较小的资源配置,但这种趋势可能出现意想不到的问题,像是在单核心配置下,即便开发者明确地配置使用垃圾回收器,但是最终可能得不到期望效果。
在内存的配置上,也可以看出容器实例更小的趋势,30%的容器化应用程序会以旗标-XX:MaxRAMPercentage明确定义JVM内存使用上限,而这个比例在2022年仅为9%,比例的变化显示该旗标越来越普遍,开发人员通过该旗标来改善应用程序的性能和资源管理。
与2022年一样的是,G1垃圾回收器依然是Java 11和以上版本开发者的爱用选项,有65%的开发者选用G1垃圾回收器,其主要优点是每次在回收内存时,倾向清除较小的区域,而不会一次回收一大块区域,通过优化回收过程,不只减少程序产生卡顿的问题,还能同时回收不同时代的对象。
在Java长期支持的版本选择上,有超过56%的生产应用程序使用Java 11,第二多的版本则是Java 8,但其使用比例已经从2022年的46%下降到33%。而最新的长期支持版本Java 17,虽然目前使用率仅有9%,但是New Relic提到,与前一个长期支持版本相较起来,Java 17采用的速度远远超过Java 11刚推出时的采用速度。Java非长期支持版本的使用率极低,仅有1.6%的应用程序使用。