北大青鸟设计培训:GraalVM有什么特点?
1.高性能JavaGraalVM中的Graal是以Graal编译器命名的。
Graal是一个通用编译器,也就是说,虽然它是一个单一的实现,但它可以用于许多目的。
比如我们可以用Graal进行提前和即时编译,也可以用它来编译很多编程语言。
2.内存占用小,启动速度快的JavaJava对于长时间运行的进程来说是相当强大的,但是短时间运行的进程可能会遭遇启动时间长,内存占用高的问题。
3.结合了JavaScript、Java、Ruby和R语言除了Java,GraalVM还包括JavaScript、Ruby、R语言和Python的实现。
它们都是使用名为Truffle的语言实现框架开发的,这使得实现简单和高性能的语言解释器成为可能。
用Truffle开发语言解释器时,Graal被自动用作JIT编译器。
所以Graal不仅是Java的JIT编译器和预编译器,也是JavaScript、Ruby、R语言和Python的JIT编译器。
4.在JVM上运行原生语言GraalVM也支持C语言,GraalVM可以像运行JavaScript、Ruby等语言一样运行C代码。
实际上,GraalVM是通过运行LLVM位代码来支持C语言的,而不是直接运行C代码。
也就是我们可以把现有的工具和C语言一起使用,也可以使用其他可以输出LLVM的语言,比如C++、Fortran等未来可能出现的语言。
为了简化演示,我使用了由StephenMcCamant维护的gzip的单个文件版本。
为了简单起见,它只是将gzip源代码和autoconf配置连接到一个文件中。
我还需要修改一些东西让它在macOS上运行,但是它不能在GraalVM上运行。
5.所有编程语言的工具如果你用Java编程,你可能习惯用那些高质量的工具,比如IDE,调试器,分析器,但是并不是所有的编程语言都有这么有用的工具。
但是,如果在GraalVM中使用某种语言,就可以得到这样的工具。
6.扩展基于JVM的应用可以用于独立语言实现和多语言编程,这些语言和工具也可以嵌入到Java应用中。
新的org.graalvm.polyglotAPI可用于加载和运行其他语言的代码。