【问题标题】:GraalVM as JIT compiler for ARM JREGraalVM 作为 ARM JRE 的 JIT 编译器
【发布时间】:2019-02-15 08:37:21
【问题描述】:

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

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

非常感谢您的回答。

【问题讨论】:

    标签: java graalvm


    【解决方案1】:

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

    Graal JIT 编译器也可以在 ARM 上运行,并且可以与 OpenJDK 一起使用。它不适用于 OpenJDK 8。OpenJDK 9 和 10 可能有效。我建议将它与 OpenJDK 11 一起使用(例如 adoptopenjdk)。 Truffle 语言(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 功能。

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

    斯蒂芬

    【讨论】:

    • 你做得很好。我的猜测是,AOT 的工作会扰乱 Java 世界。
    【解决方案2】:

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

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

    【讨论】:

    • 嗨约翰,你知道它是否可用于 arm7(32 位),我查看了 AdoptJdk Java 14 构建,目前我似乎没有从 adoptopenjdk.net/… 下载 arm32 构建这不包括 jaotc
    • @PaulTaylor 我不知道具体情况,但 GraalVM GitHub 上有一个关于它的未解决问题:github.com/oracle/graal/issues/1329 所以我猜答案是“否”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2010-10-06
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 2011-07-17
    • 2015-09-03
    相关资源
    最近更新 更多