我正在阅读JEP 317。它说Graal(一个新的基于实验Java的JIT编译器)将成为JDK 10的一部分,但后来它说已经在JDK 9中可用了。那么,JEP 317的重点是什么呢? Java 9是否包含Graal?
答案 0 :(得分:17)
从我的一个备忘录中,在linux-x64(开箱即用)上使用Graal on JDK 9,您可以使用以下命令启用它:
-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler
来源:Tweet from Chris。
如果您明确愿意使用org.graalvm.*
类,除了Linux distribution here和JEP-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"动态编译"而不是事先要求手动编译。