编者注
编者最近要发布服务到云厂商平台,云厂商平台针对代码的安全性需要进行防护。则需要把对应的Java代码进行加密防护。简单的加密直接使用AOT编译。增加解密成本。
GraalVM
GraalVM简短介绍
G让阿里VM是一个生态系统并且共享运行时,不仅仅支持JVM基础的开发语言,Java、Scala、Groovy和Kotlin。同样支持JavaScript、Ruby、Python和R等其他开发语言。另外,允许让JVM通过LLVM编译执行原生平台代码。GraalVM 1.0基于JDK8。
上图说明GraalVM的开发生态的结构。
虚拟化层代表GraalVM提供的编程语言。最终执行的语言可能是JavaScript、Ruby、R、Python和LLVM代码。JVM基础的应用在这些运行时上已经实施。主语言与客语言可以直接相互操作,相互数据贯通并使用相同的内存空间。
地步的结构表明适用的范围。GraalVM可能独立运行、嵌入到OpenJDK或者node.js平台,甚至可以嵌入到MySQL或者Oracle RDBMS数据库中。
GraalVM 1.0 发布版包含如下语言特性:
- JVM基础的语言:Java、Scala、Groovy和Kotlin
- JavaScript(包括node.js)
- LLVM编译的语言:C、C++、Rust
- 解释性版本:Ruby、R、Python
GraalVM包含如下组件:
- Graal:动态即时(JIT)编译器,通过独特的代码分析与优化提高效率和执行速度。
- Graal Polyglot APIs:绑定多种开发语言的API。这些API允许根据你的需求匹配编程语言并给你更好的性能和更少的资源使用
- Graal SDK:嵌入Graal语言并配置本地镜像
- Oracle HotSpot Java Virtual Machine(JVM):JVM基础语言的运行时环境,支持叠加其他编程语言。
GraalVM特性
GraalVM将告诉你:
GraalVM文档
无论是第一次尝试GraalVM运行应用程序,还是准备开始使用Graal Polyglot API进行开发,请查看Graal文档。
或者,可以查看JavaDoc中的参考文档:
- Polyglot Package允许配置和运行应用程序
- Proxy Package允许最小化代理使用Graal语言对象
- IO Package允许自定义语言的文件访问
如果无法找到答案或者有一男解答,请联系我们