GraalVM Native Image biên dịch Java sang machine code ahead-of-time (AOT) — không cần JVM lúc chạy.
Lợi ích:
- Startup ~100ms (vs 4+ giây trên JVM).
- Memory giảm 50%+.
- Tiết kiệm chi phí serverless (Lambda, Cloud Run — billing theo ms).
- Kubernetes pod start nhanh, scale-to-zero hiệu quả.
Spring Boot 3+ tích hợp AOT engine — pre-compute bean metadata lúc build.
Thách thức:
- Reflection invisible với static analysis — Jackson, Hibernate cần reflection hint.
- Dynamic proxies phải khai báo trước.
- Classpath scanning không chạy runtime.
- Build time chậm (10-20 phút) so với JVM bundle (vài giây).
- JIT warmup không còn → peak performance đôi khi thấp hơn JVM warmed-up.
Giải pháp: Spring AOT processor tự generate hint cho hầu hết case. Thư viện third-party đôi khi cần config thủ công (reflect-config.json, @RegisterReflectionForBinding).
Khi dùng: function ngắn (Lambda), CLI tool, microservice cần scale-to-zero nhanh. Không phù hợp app chạy lâu cần JIT peak performance.