官方说明:
GraalVM是一个生态系统和共享运行时,不仅提供基于JVM的语言(如Java,Scala,Groovy和Kotlin)的性能优势,还提供其他编程语言(如JavaScript,Ruby,Python和R)的性能优势。此外,它还支持通过LLVM前端在JVM上执行本机代码。GraalVM 1.0基于JDK 8。

上图说明了GraalVM作为开放式生态系统的体系结构。
虚拟化层代表GraalVM提供的编程语言。客户编程语言(即JavaScript,Ruby,R,Python和LLVM bitcode)在与基于主机JVM的应用程序相同的运行时中的执行现在是脚踏实地的。宿主语言和客户语言可以直接相互操作,并在同一存储空间中来回传递数据。
底部展示了适用范围。GraalVM既可以独立运行,也可以作为OpenJDK或node.js平台的一部分进行嵌入,甚至可以嵌入MySQL或Oracle RDBMS等数据库中。
GraalVM 1.0版本包含语言解释器:
- 基于JVM的语言,如Java,Scala,Groovy或Kotlin
- JavaScript(包括node.js)
- 编译为LLVM bitcode的语言,如C,C ++或Rust
- Ruby,R和Python的实验版本
GraalVM包括以下组件:
- Graal:一种动态即时(JIT)编译器,通过独特的代码分析和优化方法提高应用程序的效率和速度。
- Graal Polyglot API:用于在共享运行时中组合编程语言的API。这些API允许您根据需要匹配编程语言,并使用更少的资源为您提供更好的性能。
- Graal SDK:一组用于嵌入Graal语言和配置本机映像的API。
- Oracle HotSpot Java虚拟机(JVM):基于JVM的语言和支持的客户编程语言的运行时环境。
ShowTime:
配置篇:
看完了激动人心的介绍之后,我果断选择了前去尝试。作为一个重度java患者,对于Oracle的东西还是比较有兴趣的。下面是他的官网,长这个样子,总体来说,UI设计师还是不错的。至少我喜欢这个风格。

我们继续顺着首页向下看。官网以一段Node代码,向我们展示了,GraalVM的优越性,我们可以很明显的发现,在这段代码中我们兼容了3种不同的语言。为我们提供了极大的便利性。

接下来,我们介绍下,java方面的优化,GraalVM允许您提前将程序编译为本机可执行文件。生成的程序不在Java HotSpot VM上运行,而是使用必要的组件,如内存管理,来自虚拟机的不同实现的线程调度,称为Substrate VM。Substrate VM是用Java编写的,并编译成本机可执行文件。与Java VM相比,生成的程序具有更快的启动时间和更低的运行时内存开销。

这张图中我们,很明显的看到,java的编译时间被缩短了,14倍。当然这是它官方提供的数据。一切以我之后的测试数据为准。
说了这么多,越说越激动,我迫不及待的下载了,这个东西了。去了趟官网。这家伙提供了社区版和企业版,我第一次尝试的是社区版,然后很不负众望的失败了。后面我果断百度了下,度娘也不是万能了,大多数“玩家”用的都是Mac这让我很头疼。不过索性我在官方的文档上面找到了解决方法。

在官网注册账号成功之后,会自动下载
,然后我把它拖到了,我的虚拟机中。
然后执行如下操作:
1.随意选择一个文件夹,执行解压命令,会看到一堆解压的数据。如果桌面上出现图三的文件夹则标志着成功。


图三
2.接下来为这个虚拟机配置运行环境,因为我是linux的系统,所以我就选择了第一行的配置项目。格式如下:
export PATH=/path/to/graalvm/bin:$PATH
在我的机器上配置出来的效果是:
其中:/home/gjt/Desktop/graalvm-ee-1.0.0-rc4/bin是我的安装路径。
export PATH=/home/gjt/Desktop/graalvm-ee-1.0.0-rc4/bin:$PATH
出现如下界面,即为配置成功。

操作篇:
做完了,虚拟机的配置,接下来就是针对基础代码的测试了。
java代码:
执行新增命令,打开一个文件。

