Java
GraalVM 将 Graal 用作实时编译器,可以在 Java HotSpot VM 中执行 Java 应用。
GraalVM 执行 Java 有哪些主要优势?
Graal 专注于为长时间运行的复杂 Java 应用提供卓越的峰值性能。当我们仍致力于进一步提高 Graal 处理传统负载的性能时,Graal 已经为一些程序提供了比现有编译器更好的峰值性能。特别是,使用非传统字节码模式的应用(例如,Scala 应用、大量 Stream API 和 lambda 用户)从 Graal 中受益。Graal 的峰值性能主要源自三个因素:
新的内联方式:Graal 采用了一种新的内联方式,无需考虑 Java 字节码大小,而是在作出最终决定之前模拟内联的好处。
部分逃逸分析:Graal 通过充分证明对象的线程局部性或者将分配插入不经常执行的分支,可以删除对象分配。
推测优化:编译器设计的一个主要组成部分是为推测优化提供一流的支持。这尤其有利于基于 Graal 执行动态语言。
如何在 GraalVM 上执行 Java 应用?
GraalVM 为 Java 应用提供了一个编译器和执行系统(虚拟机)。您可以使用一个命令行 shell 像使用其他 Java VM 一样执行任何 Java 程序。
# export PATH=/path/to/graalAndTruffle/bin:$PATH
# java myJavaClass
or
# java -jar myJavaApp.jar
您可以使用 java -version 命令验证您在使用 GraalVM。输出应包含“Graal VM”,如下所示:
# java -version
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
OpenJDK 64-Bit Graal VM (build ...)
有关更多详细信息,请参见该版本的自述文件。