324 字
2 分钟
java之AOT编译
2026-04-14

参考链接#

JavaGuide——Github@Snailclimb

什么是AOT#

AOT编译是jdk9之后开发出来,新JAVA底层编译器。AOT编译具有静编译的特征,能够在程序运行前实现将程序编译成机器码(无法针对反射、动态代理的编译,因为通常这些需要程序运行时即时加载),AOT避免JIT编译的预热时间,大幅度提高程序的运行效率,但是缺点比较明显,就是打包后比JIT的要大得多,AOT对微服务、serverless、云原生比较适用。

JIT和AOT的比较#

对比维度JIT(即时编译)AOT(提前编译)
编译时机运行时编译运行前编译
启动速度较慢(需要预热)快(无需预热)
峰值性能更高(运行时优化)较低(缺少运行时信息)
内存占用较高较低
打包体积较小较大(包含机器码)
动态特性支持完全支持受限(反射、动态代理等)
适用场景长时间运行的服务云原生、Serverless、CLI 工具

可以看出,AOT 的主要优势在于启动时间、内存占用和打包体积。JIT 的主要优势在于具备更高的极限处理能力,可以降低请求的最大延迟

java之AOT编译
https://iszengmh.pages.dev/posts/java之aot编译/
作者
Rise Zeng
发布于
2026-04-14
许可协议
CC BY-NC-SA 4.0