本文介绍了有人可以解释一下Graal,GraalVM,Truffle和amp;之间的区别吗? SubstrateVM?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I know these technologies are all related but could someone please explain what each one is used for and how they fit together?

推荐答案

过分简化:

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

  • Graal - Java bytecode compiler. Can be used just in time (as part of a JVM) or ahead of time.

SubstrateVM -在没有JVM的情况下实际运行提前编译的Java字节码所需的其他内容(运行时).这为GraalVM的本机图像"命令提供了动力.

SubstrateVM - other things (runtime) needed to actually run ahead-of-time compiled Java bytecode without a JVM. This powers the "native-image" command of GraalVM.

松露-用于将语言实现为AST解释器的框架,可以使用graal进行即时编译.实现的一些著名语言是JavaScript,Ruby,R和LLVM位代码.

Truffle - framework for implementing languages as AST interpreters which can be just-in-time compiled using graal. Some notable languages implemented are JavaScript, Ruby, R and LLVM bitcode.

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

GraalVM - most of these technologies packaged together in order to support different use cases, for example: running JVM programs (i.e. anything that compiles to Java bytecode) using Graal as the JIT compiler for better peak performance, ahead-of-time compiling JVM programs for fast startup and low memory footprint, running fast dynamic languages (JS, R, Ruby) that can interoperate without overhead, and so on.

这篇关于有人可以解释一下Graal,GraalVM,Truffle和amp;之间的区别吗? SubstrateVM?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-22 13:55