Java 10 - JIT 编译器

JEP 317 - 基于 Java 的实验性 JIT 编译器

JIT编译器是用C++编写的,用于将Java转换为字节码。现在,Java 10 可以选择启用基于 Java 的实验性 JIT 编译器 Graal,而不是使用标准 JIT 编译器。Graal 使用 JVMCI(Java 9 中引入的 JVM 编译器接口)。Graal 也可在 Java 9 中使用。借助 Java 10,我们可以启用 Graal 来测试和调试实验性 JVM 编译器。

句法

java -XX:+UnlockExperimentalVMOptions -XX:+UseJVMCICompiler

Graal 编译器是基于 C++ 的早期编译器的完全重写,针对基于 Linux/x64 的平台。Graal 是在 Java 9 中引入的,作为目前使用的 JIT 编译器的替代方案。Graal 是 JVM 的插件,可以动态插入。它还支持多语言解释。

风险和假设

由于 Graal 是实验性的,并且需要考虑各种热点和具有各种标志选项的 jdk 测试来进行测试工作。与标准 JIT 提前编译器相比,它可能无法通过某些性能基准测试。