GraalVM Native Image 简介
是什么 GraalVM Native Image 是 GraalVM 提供的 AOT(Ahead-Of-Time) 编译路径:在构建期把 Java 应用及其依赖静态分析,编译成本地可执行文件(Linux/macOS/Windows 上的单一二进制或小型目录),运行时不再依赖传统意义上的 java -jar + 完整 JRE/HotSpot 进程模型。 与日常默认的 HotSpot 路径对比: HotSpot: 源码 → javac → .class → java 启动 JVM → 解释/JIT → 运行 Native Image: 源码 → javac → .class → native-image 构建 → 本地二进制 → 直接运行 GraalVM 平台总览见 GraalVM 简介。作为运行时有两种常见用法,不要混为一谈: 作为 HotSpot 上的高性能 JIT 编译器(仍是 java 命令跑字节码) 作为 Native Image 工具链(产出独立可执行文件,本文主题) 为什么用它 维度 HotSpot + JAR Native Image 冷启动 秒级常见(JVM 启动、类加载、Spring 扫描) 毫秒级常见 内存占用 完整 JVM 堆与元空间 无 HotSpot 堆模型;通常更小 镜像/分发 需 JRE 或容器内 Java 运行时 单一二进制 + 可选少量资源文件 峰值吞吐 JIT 预热后通常更强 无 C2 长时间优化,长时间 CPU 密集型可能不如 HotSpot 构建 mvn package 较快 native-image 构建慢,CI 时间显著增加 典型场景:Serverless/函数计算、CLI 工具、Kubernetes 中短生命周期且副本多的 Pod、对启动延迟敏感的边缘服务。 ...