【发布时间】:2018-12-29 21:32:10
【问题描述】:
我知道这些技术都是相关的,但有人可以解释一下每种技术的用途以及它们如何组合在一起吗?
【问题讨论】:
标签: graalvm
我知道这些技术都是相关的,但有人可以解释一下每种技术的用途以及它们如何组合在一起吗?
【问题讨论】:
标签: graalvm
过于简单化:
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)等等。
【讨论】: