有人可以解释一下Graal,GraalVM,Truffle和SubstrateVM之间的区别吗?

时间:2018-12-29 21:32:11

标签: truffle graalvm

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

1 个答案:

答案 0 :(得分:0)

过于简化: Graal-Java字节码编译器。可以及时使用(作为JVM的一部分)或提前使用。 SubstrateVM-在没有JVM的情况下实际运行提前编译的Java字节码所需的其他内容(运行时)。这为GraalVM的“本机图像”命令提供了动力。 松露-用于将语言实现为AST解释器的框架,可以使用graal及时进行编译。实现的一些著名语言是JavaScript,Ruby,R和LLVM位代码。 GraalVM-这些技术中的大多数打包在一起以支持不同的用例,例如:使用Graal作为JIT编译器运行JVM程序(即,编译为Java字节码的任何程序)以获得更好的峰值性能,提前编译JVM程序为实现快速启动和低内存占用,运行了可以在不产生开销的情况下进行互操作的快速动态语言(JS,R,Ruby)等等。