graalVM高性能跨语言虚拟机
偶然看到oracle发布的这个虚拟机,听闻它可以支持很多种语言直接编译成二进制文件运行,甚至可以多语言混写编译成二进制文件运行。
特意试了下java下编译成二进制文件的效果。
首先下载graal 写了个hello world
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
}
}
编译执行命令
javac HelloWorld.java
java HelloWorld
上面命令是我们直接使用jvm运行我们的hello world程序,下面是使用graal的命令将java文件编译成二进制文件
/app/graal/graalvm-ce-1.0.0-rc16/bin/native-image HelloWorld
这样就生成了一个helloworld二进制文件.
2.4M May 8 10:24 helloworld
427 May 8 10:22 HelloWorld.class
116 May 8 10:21 HelloWorld.java
./helloworld 直接可以运行。
对于小应用来说编译成可执行的二进制文件并没有多大的优势
这东西还是挺好玩的,很极客。 但是不敢在生成环境使用,只有上帝知道中间会出什么问题。 以前kotlin刚出来的时候,看到了native的功能,也是可以将kotlin代码编译为可执行二进制文件,不过这些东西都还在试验阶段,期待成熟的那一刻。