Microsoft Java 引入编译器优化
该公司的 Java 开源发行版 OpenJDK 的 Microsoft Build 添加了一项实验性功能,以改进逃逸分析编译器优化结果。
通过 10 月 24 日发布的补丁和安全更新并称为 2022 年 10 月 PSU 版本,Microsoft 寻求通过增加标量替换机会的数量来改进逃逸分析结果。
在编译器优化中,逃逸分析是一种算法,用于确定指针的动态范围,或者在程序中可以访问指针的位置。 通过标量替换,Java 即时编译器可以在堆栈或寄存器中分配对象的成员或标量,而不是在堆上分配整个对象。 这减少了垃圾收集的压力。
新逃逸分析增强的目标是简化对象分配合并,以促进合并中涉及的对象的标量替换。 微软表示,Java 开发工具包 (JDK) 11 中包含此增强功能的更简单版本,而 JDK 17 中包含了一个利用更多机会的版本。
OpenJDK 11 的更新可在此处找到,OpenJDK 17 的更新可在此处找到。Microsoft Build of OpenJDK 的下载可用于 Windows、Linux 或 macOS,可在 learn.microsoft.com 上找到。 从此版本开始,开发人员可以通过检查 GitHub 上新建立的 Microsoft 存储库(jdk17u 和 jdk11u)中的源代码来查看对构建所做的确切更改。
Microsoft 已更新容器映像,包括 Microsoft CBL-Mariner 2.0 Linux 发行版以及基于 CBL-Mariner 和 Eclipse Temurin 二进制文件的 OpenJDK 8 映像。 微软表示,Azul Zulu for Azure Builds of OpenJDK 不再受支持,也不再更新。