JEP 草案:Java 虚拟机的提前编译

💡 原文中文,约1000字,阅读约需3分钟。
📝

内容提要

Java虚拟机增强,加载本机代码的Java应用程序和库,实现更快启动和执行。解决方案是使用永久提前C1编译替换解释器和运行时C1编译,绕过热身步骤和解释器。Galahad计划将预编译编译器集成到JDK中。

🎯

关键要点

  • 增强 Java 虚拟机,能够加载编译为本机代码的 Java 应用程序和库,以实现更快的启动和基线执行。

  • Java 应用程序和库可以提前编译为本机代码,绕过解释器,进行 C1 或 C2 编译。

  • 当前 Java 应用程序在三阶段模型中执行,涉及多次优化和反优化循环,导致性能问题。

  • Graal 编译器在 Java 17 之前的引导阶段对应用程序产生负面影响,抵消了性能提升。

  • C2 编译代码的去优化过程代价高昂,可能导致资源浪费。

  • 解决方案是使用永久提前 C1 编译替换解释器和运行时 C1 编译,绕过热身步骤。

  • Galahad 计划将预编译编译器集成到 JDK 中,以实现更好的性能。

➡️

继续阅读