【问题标题】:Could someone please explain the differences between Graal, GraalVM, Truffle & SubstrateVM?有人可以解释一下 Graal、GraalVM、Truffle 和 SubstrateVM 之间的区别吗?
【发布时间】:2018-12-29 21:32:10
【问题描述】:

我知道这些技术都是相关的,但有人可以解释一下每种技术的用途以及它们如何组合在一起吗?

【问题讨论】:

    标签: graalvm


    【解决方案1】:

    过于简单化:

    • Graal - Java 字节码编译器。可以及时使用(作为 JVM 的一部分)或提前使用。

    • SubstrateVM - 在没有 JVM 的情况下实际运行提前编译的 Java 字节码所需的其他东西(运行时)。这为 GraalVM 的“native-image”命令提供了动力。

    • Truffle - 将语言实现为 AST 解释器的框架,可以使用 graal 即时编译。实现的一些著名语言是 JavaScript、Ruby、R 和 LLVM 位码。

    • GraalVM - 将这些技术中的大多数打包在一起以支持不同的用例,例如:使用 Graal 作为 JIT 编译器运行 JVM 程序(即任何编译成 Java 字节码的程序)为了获得更好的峰值性能,提前编译 JVM 程序以实现快速启动和低内存占用,运行可以在没有开销的情况下进行互操作的快速动态语言(JS、R、Ruby)等等。

    【讨论】:

    • 谢谢。 GraalVM 在这个阶段是否仅适用于 JDK 8?
    • 是的,GraalVM 团队目前只生产基于 JDK8 的构建。您对哪个 JDK 版本感兴趣?
    • 我实际上希望构建 JDK 10 或 11。并让它跟上当前的 JDK。目前只基于JDK 8有什么原因吗?
    • 根据 Graal-dev 邮件列表上的this message,他们正在开发它,但看起来一些功能(如提到的本机图像支持)尚未针对 JDK 11 更新。
    猜你喜欢
    • 2013-12-04
    • 1970-01-01
    • 1970-01-01
    • 2016-10-10
    • 2019-05-14
    • 2019-08-21
    • 2013-07-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多