有人知道GraalVM是否可以在ARM体系结构的OpenJDK发行版中用作JIT编译器?
graalVM github精确AMD架构和github ARM相关问题上可用的发行版与本机映像创建有关(因此适用于ARM的AOT编译器)。也许还有一个问题:如果他们成功地为arm创建了本地映像,这是否意味着GraalVM也可以作为arm的JIT编译器使用?还是这两个东西是独立的?我从编译器生态系统开始:)
非常感谢您的回答。
答案 0 :(得分:6)
编辑:我忘了,看到Jorn Vernees的回答,OpenJDK 11已经包含Graal JIT。
Graal JIT编译器也可以在ARM上运行,并且可以与OpenJDK一起使用。它不适用于OpenJDK8。OpenJDK9和10可能适用。我建议将其与OpenJDK 11配合使用(例如adoptopenjdk)。松露语言(Javascript,Python等)未经此体系结构测试。使graal JIT在AArch64上运行以从源代码构建它的最简单方法:
另请参阅README
export JAVA_HOME=/path/to/jdk-11
git clone https://github.com/oracle/graal.git
git clone https://github.com/graalvm/mx.git
export PATH=$(pwd)/mx:$PATH
cd graal/compiler
mx build
mx vm -cp test.jar org.something.Main
为了查看使用graal JIT运行Java所需的完整命令行,可以运行mx -v vm -cp test.jar org.something.Main
。
关于第二个问题:恰恰相反。 JIT编译器已经存在,现在我们正在努力为AArch64提供native-image
功能。
我希望这能回答您的问题。
Stefan
答案 1 :(得分:2)
Graal JIT编译器(不是 VM)也作为实验性功能包含在OpenJDK 11中,我认为也适用于ARM。 OpenJDK中的版本将比github / oracle / graal存储库中的版本稍低,因为它只会定期更新,但是优点是它只需要几个命令行标志即可使用。可以在运行应用程序时通过传递以下VM标志来打开它:
-XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI -XX:+UseJVMCICompiler