GraalVM - JVM 即时编译器


GPLv2
Linux
Java

软件简介

Graal — 新的 JVM 即时编译器

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 编译器,包括命令行程序 nodejrb
R ,可用于取代 NodeJS、Ruby 和 R。

请点击下面的“软件下载” 进行体验,下载后解压即可使用 bin 目录下的 java 和 trufflejs 命令分别来执行 Java 和
JavaScript 程序。

TruffleJS 是 Truffle 多语言执行框架的一个 JavaScript 版本的实现,该版本基于 GraalVM 运行。