Java 9是否包含Graal?

时间:2018-01-14 18:31:35

标签: java java-9 graalvm java-10

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

2 个答案:

答案 0 :(得分:17)

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

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

来源Tweet from Chris

如果您明确愿意使用org.graalvm.*类,除了Linux distribution hereJEP-317#Experimental Java-Based JIT Compiler&#之外,它们不会出现在JDK-9版本中39; s的状态也是类似的东西。

Status    Integrated
Scope JDK
Release   10

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

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

答案 1 :(得分:2)

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"动态编译"而不是事先要求手动编译。