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中编译,而不是事先需要手动编译。