An Analysis of Compiled Code Reusability in Dynamic Compilation
summary
Prototype implements IR caching and deferred optimization for GraalVM targeting the HotSpot JVM, tested on Renaissance benchmarks. It disables field folding and wraps heap-constant IR nodes before a reuse point, then re-enables optimizations per-VM; empirical results show performance impact from negligible to a 6x slowdown (GhostMix outlier caused by lost method-handle inlining). Proposal includes a remote JIT compilation server to serve cached IR; savings depend on method size and on compiling from cache being much faster than from scratch.
AI-written summary · about
chapters (18)
- 0:00Compiled code reusability intro
- 1:05Remote JIT compilation server
- 2:27Reusing machine code challenges
- 4:37VM optimizations hindering reusability
- 7:47IR caching and deferred optimization
- 9:55IR caching reduces latency
- 13:03Cached IR verification
- 13:46Deferred optimization impact
- 16:36GhostMix performance drop
- 18:25Selective deferred optimization
- 19:08Conclusion and future work
- 20:14Q&A: Tiered compilation
- 20:55Q&A: Invalid optimizations
- 21:42Q&A: Static final fields
- 22:04Q&A: Future VM invalidations
- 23:10Q&A: Warm-up time savings
- 24:40Q&A: Space vs speed trade-offs
- 25:44Q&A: Warm-up curves
related talks
19mReusing Just-in-Time Compiled Code
38mGraal
43mThe Virtual Machine Under the Hood
25mHybrid Execution: Combining Ahead-of-Time and Just-in-Time Compilation
01h 00mStatic Java, GraalVM Native and OpenJDK
40mJoy of Meta-Tracing Just-in-Time Compilation: More Than Just a VM Generator
23mFast and Compact: Reducing Size of AOT-Compiled Java Code Without Sacrificing Performance
34mWhat happens to your code when you don't look?
