Java10 JIT编译器
JEP 317 – 实验性的基于Java的JIT编译器
JIT编译器是用C++编写的,并用于将Java转换为字节码。现在,Java 10提供了启用实验性基于Java的JIT编译器Graal的选项,以取代标准的JIT编译器。Graal使用JVMCI(JVM编译器接口),该接口在Java 9中引入。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预编译编译器相比,它可能在性能方面在某些基准测试中失败。