JEP 草案:Java 虚拟机的提前编译
💡
原文中文,约1000字,阅读约需3分钟。
📝
内容提要
Java虚拟机增强,加载本机代码的Java应用程序和库,实现更快启动和执行。解决方案是使用永久提前C1编译替换解释器和运行时C1编译,绕过热身步骤和解释器。Galahad计划将预编译编译器集成到JDK中。
🎯
关键要点
-
增强 Java 虚拟机,能够加载编译为本机代码的 Java 应用程序和库,以实现更快的启动和基线执行。
-
Java 应用程序和库可以提前编译为本机代码,绕过解释器,进行 C1 或 C2 编译。
-
当前 Java 应用程序在三阶段模型中执行,涉及多次优化和反优化循环,导致性能问题。
-
Graal 编译器在 Java 17 之前的引导阶段对应用程序产生负面影响,抵消了性能提升。
-
C2 编译代码的去优化过程代价高昂,可能导致资源浪费。
-
解决方案是使用永久提前 C1 编译替换解释器和运行时 C1 编译,绕过热身步骤。
-
Galahad 计划将预编译编译器集成到 JDK 中,以实现更好的性能。
➡️