【翻译】GraalVM(一):GraalVM介绍

GraalVM是一个共享运行时间的生态系统,无论是那些依赖于JVM的语言(Java、Scala、Groovy、Kotlin)还是说其他的编程语言例如(JavaScript、Ruby、Python、R)有性能上的优势。另外,GraalVM能够通过一种前端的LLVM执行JVM上面的原生代码。GraalVM 1.0版本是基于JDK8的。

Alt text

上图描述了GraalVM作为开发生态系统的一个架构图

虚拟化层代表了GraalVM提供的编程语言。非宿主型语言(JavaScript、Ruby、R、Python、LLVM二进制码)能够和基于JVM的宿主型语言达到同样的一个运行时间,并且两者可以在同一个内存空间中来回传递数据进行互操作。

架构图的底部表明了它的适用范围。GraalVM既可以独立运行,又可以嵌入到OpenJDK或者Node.js平台中,甚至可以嵌入到例如Mysql或者Oracle RDBMS这样的数据库中去。

GraalVM 1.0 正式版本中包含的语言解释器可以用于:

  • 基于JVM的语言( Java, Scala, Groovy, 或者 Kotlin)
  • JavaScript(包括Node.js)
  • 编译成LLVM二进制码的语言( C, C++, Rust)
  • Ruby, R, 以及 Python的试验版本

GraalVM是由以下几个部分组成的:

  • Graal: 动态的实时(JIT)编译器,通过独特的代码分析和优化方法,能够提升应用程序的效率和速度。
  • Graal Polyglot APIs:APIs用来在共享运行时间里绑定编程语言。这些APIs可以根据你的需求去匹配编程语言,并且只需很少的资源就可以达到更好的性能。
  • Graal SDK:一组高效的APIs集合,用于嵌入式Graal语言以及配置本机镜像。
  • Oracle HotSpot Java Virtual Machine (JVM):针对那些基于JVM的语言或者支持非宿主编程语言提供的一个运行时环境。

GraalVM特性

GraalVM能够:

  • 代码运行的更快更高效
  • 和一些更现代化的编程语言直接操作
  • 通过Graal SDK嵌入到语言内部
  • 创建编译成功的本机镜像
  • 使用简单的工具集合来监控、调试、描述代码

GraalVM参考文档

  • 入门
  • 示例
  • 兼容性
  • 参考文章
  • GraalVM作为平台
  • FAQ

另外,你可以去了解JavaDoc中的文档:

  • Polyglot Package 配置和运行跨语言应用程序
  • Proxy Package 使用代理模拟Graal语言的对象
  • IO Package 自定义文件系统的访问语言

如果你仍然有疑问,联系我们

原文请见链接:https://www.graalvm.org/docs/

你可能感兴趣的:(【翻译】GraalVM(一):GraalVM介绍)