GraalVM 是新一代的高性能跨语言虚拟机,用于运行 JavaScript、Python 3、Ruby、R、基于 JVM 的语言,如 Java、Scala、Kotlin 和基于 LLVM 的语言,如 C 和 C++。 GraalVM 消除了编程语言之间的隔离,并支持共享运行时的互操作性。它可以独立运行,也可以在 OpenJDK、Node、Oracle 或者 MySQL 上运行。
GraalVM 是新一代的高性能跨语言虚拟机,用于运行 JavaScript、Python 3、Ruby、R、基于 JVM 的语言,如 Java、Scala、Kotlin 和基于 LLVM 的语言,如 C 和 C++。
GraalVM 消除了编程语言之间的隔离,并支持共享运行时的互操作性。它可以独立运行,也可以在 OpenJDK、Node、Oracle 或者 MySQL 上运行。
Graal 是一个用 Java 编写的新的 JVM 即时编译器,集成到 HotSpot 虚拟机,侧重性能和语言互操作性。Graal 为 Java 代码提供性能优势,这得益于方法内联、流转对象分配和推理执行等新技术,从而可以实现高性能的脚本语言引擎。
与传统的 HotSpot 编译器不同,脚本语言解释器可以使用 Graal 包含的 Truffle API 发出原生代码,这样无需提前编译,即可让编程语言获得 Java 的性能。
语言解释器可以使用 HotSpot 所用技术提高 Java 代码的速度 — 包括发出优化的原生代码(含 去优化 的条件)— 该技术令即时编译的代码在性能方面优于提前编译的代码。
目前提供了一个技术预览版下载,Graal 很快就可用作 JDK 9 的附加组件。当前版本是一个独立的 JDK,包含 Graal。
语言支持
下载包括以下语言引擎:
JavaScript — Graal.js 是一个 JavaScript 解释器/编译器,能够在 JVM 上运行 Node.js 应用
FastR — R 语言解释器/编译器
RubyTruffle — 支持 Ruby 且性能优于 Ruby
SimpleLanguage — 一个有关如何使用 Graal API 的示例
好处
性能 — Graal 结合了我们对编译器技术的研究,在一些负载上提供比传统 JVM 更好的峰值性能
语言互操作性 — 用 Graal 执行的语言可以互相调用,可以使用来自其他语言的库
用法
只需下载 OTN 预览版并将其用作 JDK。它经过预先配置,使用 Graal 作为默认的 Java 编译器,包括命令行程序 node 、 jrb 和 R ,可用于取代 NodeJS、Ruby 和 R。
请点击下面的“软件下载” 进行体验,下载后解压即可使用 bin 目录下的 java 和 trufflejs 命令分别来执行 Java 和 JavaScript 程序。
TruffleJS 是 Truffle 多语言执行框架的一个 JavaScript 版本的实现,该版本基于 GraalVM 运行。