New Relic 最近发布了一份关于 Java 生态系统状态的报告,报告所使用的性能数据来自 2022 年 1 月份期间的数百万个匿名应用程序。
报告显示,Java 11 是生产环境的最新标准,采用率从 2020 年的 11%攀升至 2022 年的 48%,已经超过 Java 8,Java 8 位居第二,为 46%。Java 的其他 LTS 版本采用率非常低,只占了很小的一部分。
下图显示了 Java 版本的采用情况:
对于非 LTS 版本,最流行的似乎是 Java 14,其次是 Java 15 和 Java 12,但它们的采用率低于 1%。从 Java 9 开始,新的版本发布以 6 个月为周期,但这些版本都将一直受支持到下一次迭代。许多供应商在支持结束后不提供对非 LTS 版本的支持,这可能解释了为什么非 LTS 版本采用率较低。
有一张有趣的图表显示了 Java 生态系统中不同 JDK 发行版的采用情况。Oracle 一直是最受欢迎的供应商,但其采用率已从 2020 年的 75%降至 2022 年的 34%。Amazon Corretto 出现了大幅增长,从 2020 年的约 3%上升到 2022 年的 22%。AdoptOpenJDK 在 2020 年排名第二,为 7%,但在 2021 年,在迁移到 Eclipse Adoptium 后,在 2022 年获得了更高的百分比,为 11%,但排名下降到第三。Azul Systems 的采用率从 2020 年的 3%提高到了 8%。
下图显示了 JDK 发行版的采用情况:
容器非常流行,有 70%的应用程序是在容器中运行的。报告显示,60%在容器中运行的应用程序使用两个或更少的核心。这是有意义的,因为容器通常与微服务架构相关,但这也可能是不利的,因为默认的 G1 垃圾回收器在两个或更多核心下才能发挥得最好。
自 Java 11 以来,G1 一直是默认的垃圾回收器,因此在 Java 11 之后,它的使用率为 68%。Serial GC 在 Java 11 及其后续版本中仍然占 23%,而其他新晋的垃圾回收器,如 ZGC 和 Shenandoah,最近才开始进入到了生产阶段,所以它们的采用率仍然非常低。
下图显示了不同垃圾回收器的使用情况:
New Relic 是一家领先的开发可观察性平台(为开发者提供指标、事件、日志和跟踪)的公司。
完整的 2022 年度报告可以在New Relic网站上找到。
2020 年的 New Relic 调查报告可以在 InfoQ 的这篇报道中找到。
原文链接:
State of the Java Ecosystem Report from New Relic