前阵子,Oracle 发布了一个黑科技 "GraalVM",号称是一个全新的通用全栈虚拟机,并具备高性能、跨语言交互等逆天特性,真有这么神奇?java
GraalVM 是一个跨语言的通用虚拟机,不只支持了 Java、Scala、Groovy、Kotlin 等基于 JVM 的语言,以及 C、C++ 等基于 LLVM 的语言,还支持其余像 JavaScript、Ruby、Python 和 R 语言等。git
GraalVM 有如下几个特性。github
官网:http://www.graalvm.org/express
来看下面这段代码,来自官网。编程
const express = require('express'); const app = express(); app.listen(3000); app.get('/', function(req, res) { var text = 'Hello World!'; const BigInteger = Java.type( 'java.math.BigInteger'); text += BigInteger.valueOf(2) .pow(100).toString(16); text += Polyglot.eval( 'R', 'runif(100)')[0]; res.send(text); })
它同时使用了 Node.js、Java、R 三种语言,是否是很奇葩?微信
GraalVM 消除了各类编程语言之间的隔离性,那这种多编程语言结合使用会不会有性能影响?官方的说明是:零开销的互操做,这样,咱们就能够为应用程序选择最佳的编程语言组合。架构
来看这段代码,一样来自官网。并发
$ javac HelloWorld.java $ time java HelloWorld user 0.070s $ native-image HelloWorld $ time ./helloworld user 0.005s
GraalVM 能够预编译成原生镜像,从而极大提速了启动时间,并能减小 JVM 应用的内存占用。oracle
GraalVM 能够被嵌入到各类应用程序中,既能够独立运行,也能够在已经内置好的 OpenJDK、Node.js、Oracle、MySQL 等环境中运行。app
结合上面的特性,咱们来看下 GraalVM 的架构图。
以下图所示,GraalVM 提供了社区版和企业版两个版本。
从特性来看,上述所说的高性能、内存优化貌似都在企业版中??企业版或者可能只是在社区版上又增长了额外的提高吧!
社区版下载:github.com/oracle/graal/releases
GraalVM 这玩意看起来很不错,能够说这就是一个全栈开发平台,不只支持主流编程语言,还能组合在一块儿编程,根据不一样任务来选择最佳的语言。另外。它还能提升更高的执行效率,以及占用更少的内存。
至于应用场景,是否可应用于生产,如今还真很差说。这么一个变态级的产品,咱们期待它有更好的发展吧。
教程:史上最强 Spring Boot & Cloud 教程汇总
扫描关注咱们的微信公众号,回复 "666" 可获取一套Java并发编程高清视频教程。