原创内容,请勿搬运,本次调研参考官方文档,和网络公开资料
什么是GraalVM
GraalVM 是一个高性能 JDK,可提高基于 Java 和 JVM 的应用的性能并简化 Java 云原生服务的构建和运行。它提供优化的编译器,可以更快地生成代码并降低计算资源消耗,实现微服务即时启动。
- 架构图

- 可提前将java应用编译成独立的二进制文件。
体积小,启动速度提高100倍,无需预热就可以到达峰值性能。与java虚拟机相比,占用内存和cpu更小。
- 更安全
排除了未使用的类、方法和字段。将反射和其他动态java语言功能限制为仅在构建时。不会在运行时加载任何未知代码。
- 高可用
支持Spring Boot、Micronaut、Helidon 和 Quarkus 等常用微服务框架
- 使用 Python 和其他语言扩展 Java 应用程序
借助 GraalVM,您以嵌入 Python、JavaScript 等语言来扩展 Java 应用程序。
试用
构建可帮助 Java 应用快速启动、减少内存使用并节省托管成本的原生可执行文件。您可以在 Oracle Cloud Infrastructure (OCI) 上免费使用。
在https://luna.oracle.com/试用GraalVM的特性
- 编译
从类文件创建为可执行文件
原生镜像
Native Image 是一种将 Java 代码提前编译为二进制文件(本机可执行文件)的技术。 本机可执行文件仅包含运行时所需的代码,即应用程序类、标准库类、语言运行时以及 JDK 中静态链接的本机代码。
优点
- 使用的资源只是 Java 虚拟机所需资源的一小部分,因此运行成本更低
- 以毫秒为单位启动
- 立即提供峰值性能,无需预热
- 可以打包到轻量级容器映像中,以实现快速高效的部署
- 减少攻击
GC
- 串行 GC 是 GraalVM 中的默认 GC。它针对低内存占用和较小的 Java 堆大小进行了优化。
- G1 GC 是一种多线程 GC,经过优化,可以减少停止世界暂停,从而改善延迟,同时实现高吞吐量。要启用它,请将选项传递给生成器。目前,G1 垃圾回收器可以与 Linux AMD64 和 AArch64 架构上的原生映像一起使用。(在 GraalVM 社区版中不可用。
--gc=G1native-image - Epsilon GC(适用于 GraalVM 21.2 或更高版本)是一种无作垃圾回收器,不执行任何垃圾回收,因此永远不会释放任何分配的内存。此 GC 的主要用例是运行时间非常短的应用程序,这些应用程序仅分配少量内存。要启用 Epsilon GC,请在映像构建时指定选项。
--gc=epsilon
