Java 9是否包含Graal?

我正在读JEP 317 。 它说Graal(一个新的基于Java的实验性JIT编译器)将成为JDK 10的一部分,但后来它说已经可以在JDK 9中使用了。那么,JEP 317的重点是什么呢? Java 9是否包含Graal?

从我的一个备忘录中,在linux-x64(开箱即用)上使用Graal on JDK 9,您可以使用以下命令启用它:

 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler 

来源 : 克里斯发推文 。


如果您明确愿意使用org.graalvm.*类,那么它们不会出现在JDK-9版本中,除了Linux发行版和JEP-317#Experimental Java-Based JIT Compiler的状态之外读类似的东西。

 Status Integrated Scope JDK Release 10 

更新 : – 要在JDK10上使用Graal,可以使用以下方法启用它: –

 -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler -Djvmci.Compiler=graal 

Graal包含在9中,但它以不同的方式使用。

在Java 9中,Graal用作AOT(Ahead of time)编译器,允许用户使用jaotc工具创建手动编译的.so库。

然后可以在JVM启动时加载这些库并直接使用。

详细描述可以在相关的Java 9 JEP中找到: http : //openjdk.java.net/jeps/295

在Java 10 Graal中,如JEP 317中所述,可以用作JIT编译器而不是HotSpot。

这意味着类将在“动态”中在JVM中编译,而不是事先需要手动编译。

Interesting Posts