GraalVM 作为 ARM JRE 的 JIT 编译器

GraalVM as JIT compiler for ARM JRE

有人知道 GraalVM 是否可以在 ARM 架构的 OpenJDK 发行版中用作 JIT 编译器吗?

graalVM 上可用的版本 github 精确的 AMD 架构和 github ARM 相关问题与本机图像创建有关(因此适用于 ARM 的 AOT 编译器)。也许还有一个问题:如果他们成功地为 arm 创建了原生图像,这是否意味着 GraalVM 也可以作为 arm 的 JIT 编译器使用?或者这两件事是独立的?我从编译器生态系统开始:)

非常感谢您的回答。

编辑:我忘了,请参阅 Jorn Vernees 的回答,OpenJDK 11 已经包含 Graal JIT。

Graal JIT 编译器也适用于 ARM,并且可以与 OpenJDK 一起使用。它不适用于 OpenJDK 8。OpenJDK 9 和 10 可能有效。我建议将它与 OpenJDK 11 一起使用(例如 adoptopenjdk)。 Truffle 语言(Javascript、Python、...)未在此架构上进行测试。在 AArch64 上获取 graal JIT 运行ning 以从源代码构建它的最简单方法:

另见 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 查看 运行ning java 所需的完整命令行,您可以 运行 mx -v vm -cp test.jar org.something.Main.

关于你的第二个问题:恰恰相反。 JIT 编译器已经存在,现在我们正在努力使 native-image 功能可用于 AArch64。

我希望这能回答你的问题。

斯蒂芬

Graal JIT 编译器(不是 VM)也作为实验性功能包含在 OpenJDK 11 中,我认为对于 ARM 也是如此。 OpenJDK 中的版本会稍微落后于 github/oracle/graal 存储库中的版本,因为它只会定期更新,但优点是它只需要几个命令行标志即可使用。当 运行 一个应用程序时,可以通过传递以下 VM 标志来打开它:

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