Full Speed Ahead! Ahead of Time Compilation for Java SE
summary
JDK 9 adds experimental ahead‑of‑time compilation that uses jaotc to produce an ELF shared library (uses Graal as the compiler), improving startup and warmup by loading machine code instead of JITing. Compiling java.base often needs ~5–6 GB heap and 20–30 minutes; generated code is roughly ~10% slower than C2 but supports compile-for-tiered so C2 can later recompile. Only Linux amd64 with libelf is supported; GC mode and compressed‑oops must match, and invokedynamic/custom class loaders aren’t supported.
AI-written summary · about
chapters (8)
- 0:00Introduction to AOT
- 3:50The JVM execution model
- 11:47AOT technical benefits
- 16:18Contextualizing AOT features
- 22:03Practical AOT implementation
- 30:18Verification and dependencies
- 38:33Advanced GC and memory details
- 48:25Conclusion and resources
related talks
41mJava Goes AOT
48mJava 9 Performance
41mGraal: How to use the new JVM JIT compiler in real life
48mJust-In-Time Compilation for Java Performance: Recent and Ongoing Improvements
46mAhead Of Time (AOT) Internals
35mJava at Speed: Building a Better JVM
35mJava in a world of containers
32mClojure, Java 9, and You
