Ahead Of Time (AOT) Internals
summary
Experimental AOT produces shared native .so libraries using Graal as the compiler, supports up to 16 parallel compilation threads, and typically needs ~2,000 touched methods for a good hello‑world library; startup improves ~5% and CDS combination yields ~25% faster startup and ~20% smaller class-data footprint. Constant handling uses indirect loads and class fingerprinting to disable stale code; profiling offers standard counters and probabilistic profiling (e.g. ~1/128 sampling) to cut cache ping‑pong and CPU, while generated code is ~10% slower than C2 today.
AI-written summary · about
chapters (11)
- 0:00Introduction to AOT
- 1:21Using AOT compilation
- 2:50AOT limitations and setup
- 4:45Runtime behavior
- 7:06Graal compiler changes
- 12:33Tiered compilation and profiling
- 17:01Compilation phases
- 21:57Performance results
- 28:25Peak performance analysis
- 32:18Future work and Q&A
- 34:20Detailed audience Q&A
related talks
38mAOT or JIT: Faster Startup or Faster Code?
41mJava Goes AOT
56mBaselining AArch64 Java AOT Performance
55mJIT and AOT in the JVM
50mAOT or JIT: Faster Startup or Faster Code?
51mGoing AOT: Everything you need to know about GraalVM for Java applications
51mAOT: Everything you need to know about GraalVM for Java applications
01h 06mAOT Compilation
