Could someone please explain the differences between Graal, GraalVM, Truffle & SubstrateVM?

拟墨画扇 提交于 2020-02-21 04:56:30

问题


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


回答1:


Oversimplification:

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

  • 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.

  • 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 - 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.



来源:https://stackoverflow.com/questions/53973486/could-someone-please-explain-the-differences-between-graal-graalvm-truffle-s

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!