近日,Oracle 发布了一个黑科技”GraalVM“,号称是一个全新的通用全栈虚拟机,并具有高性能、跨语言交互等逆天特性,真有这么神奇?
GraalVM 简介
Oracle开源了一个实验性的产品GraalVM,官方称之为Universal GraalVM。它打通了不同语言之间的鸿沟,让我们可以进行混合式多语言编程。GraalVM 是一个跨语言的通用虚拟机,不仅支持了 Java、Scala、Groovy、Kotlin 等基于 JVM 的语言,以及 C、C++ 等基于 LLVM 的语言,还支持其他像 JavaScript、Ruby、Python 和 R 语言等。
GraalVM 的特性
1.更加高效快速的运行代码
2.能与大多数编程语言直接交互
3.使用 Graal SDK 嵌入多语言
4.创建预编译的原生镜像
5.提供一系列工具来监视、调试和配置所有代码
GraalVM 的作用
支持多种语言组合编程
来看下面这段代码
这段代码它同时使用了Node.js、Java、R三种语言拿node平台的express框架跑起了一个简单的web服务器。
GraalVM 消除了各种编程语言之间的隔离性,那这种多编程语言结合使用会不会有性能影响?官方的说明是:零开销的互操作,这样,我们就可以为应用程序选择最佳的编程语言组合。
原生镜像加速
来看下面这段代码
GraalVM支持镜像加速,类似于Android的Ahead-Of-Time编译,将程序编译为原生的二进制程序,加速程序启动过程。GraalVM 可以预编译成原生镜像,从而极大提速了启动时间,并能减少 JVM 应用的内存占用。
可嵌入式运行环境
GraalVM 可以被嵌入到各种应用程序中,既可以独立运行,也可以在已经内置好的 OpenJDK、Node.js、Oracle、MySQL 等环境中运行。
结合上面的特性,我们来看下 GraalVM 的架构图
如下图所示,GraalVM 提供了社区版和企业版两个版本。
从特性来看,上述所说的高性能、内存优化貌似都在企业版中,企业版也可能只是在社区版上又增加了额外的提升吧!
官网下载地址 :http://www.graalvm.org/downloads/
社区版下载地址:https://github.com/oracle/graal/releases
总结
GraalVM 总体看起来还是很不错的,可以说这就是一个全栈开发平台,不仅支持主流编程语言,还能组合在一起编程,根据不同任务来选择最佳的语言。另外。它还能提高更高的执行效率,以及占用更少的内存。即使目前仍然处于测试阶段,而且功能先对来说并没有太稳定,但是这种包含多语言功能的开发平台,仍然具有很大的改进空间和发展前景,我们不妨一试,相信会给你带来不同的体验。
至于应用场景,是否可应用于生产,现在还不能过早的下定论。对于这么一个变态级的产品,我们能做的只是期待它有更好的发展,仅此而已。
本文参考: 1. http://www.oracle.com/technetwork/cn/oracle-labs/program-languages/overview/index.html
2.https://en.wikipedia.org/wiki/GraalVM
本文作者:冰羽
本文地址: https://bingyublog.com/2018/07/28/Oracle-发布了一个全栈虚拟机-GraalVM,支持-Python!/
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!