Liberica JDK:在JDK11中引入JDK17的高性能版本

一个相当独特的项: BellSoft 公司推出了 Liberica JDK 性能版。该版本实质上是 JDK 11,在 JDK 17 的基础上对虚拟机性能进行了改进。这种方法可以让用户体验到高达 10-15% 的性能提升,而无需对代码进行大量修改。

该解决方案专门针对使用 JDK 11 的企业,这些企业可能犹豫不决或无法升级到更新的版本。回传的改进包括垃圾回收器的修复和对 NUMA(非统一内存访问)的改进支持等。

从 8 月 1 日起,现有的 Liberica JDK 订阅者可以访问该版本,无需支付任何额外费用,而且该版本还附带 BellSoft 的其他工具。

JVM 17 到 JDK 11 的耦合
每个 JDK 版本都包含新功能和改进,旨在使 Java 应用程序更快、更具弹性,这对于延迟和吞吐量直接影响用户体验的云原生应用程序尤其相关。但由于 JDK 11 处于维护模式,从新版本移植到该版本的更改越来越少。 

然而,并非所有企业都愿意或有能力迁移到最新的 JDK 版本 - 有些企业运行复杂的应用程序,有些企业使用遗留库和 API,还有一些企业没有足够的开发人员来执行迁移。结果,这些公司错失了提高其项目绩效的机会。

那么,IT 团队如何在不更改代码的情况下提高基于 JDK 11 的项目的性能呢?BellSoft 为他们提供了一个解决方案——Liberica JDK Performance Edition! 

Liberica JDK Performance Edition(或简称 liberica-perf)是 Liberica JDK 的增强版本,它结合了 JVM 17 和 JDK 11,为既定工作负载带来了最新 JVM 版本的效率。

重要的增强功能

  • 改进的垃圾收集:
    • 针对大型堆的增强型低延迟Shenandoah GC
    • 生产就绪的 ZGC,具有修复和增强的属性:并发重定位、大堆上的一致吞吐量等;
    • G1GC具有并发清理、并行FullGC、堆分配监控等新功能。此外,JEP 348使G1GC能够在空闲时将提交的堆内存返回给操作系统,从而帮助企业优化特定场景下的资源消耗;
  • 运行时改进:
    • 增强的 NUMA 支持,可提高在多插槽计算机上运行单个 JVM 的大型企业应用程序的性能;
    • 统一的JVM日志框架,日志记录更方便;
    • 堆分配监控以优化内存占用;
    • 与 zlib-ng 捆绑在一起,带来性能增强,例如 CPU 功能检测和内在函数,以便在所有 deflate/inflate 操作中实现更快的内存操作。支持的扩展包括 Intel/AMD 处理器中的 SSE2、SSE4.2、SSSE 3.0、AVX2、AVX512、PCMUL/VPCMUL,ARM64 处理器中的 ACLE + NEON;
    • 通过 JDK 17 增强功能提高了解压速度。

Liberica JDK Performance Edition 可用于在基于 Linux 的无头或 GUI 系统上开发和运行 Java 应用程序。安装过程与任何 JDK 二进制文件一样简单。