Hybrid Execution: Combining Ahead-of-Time and Just-in-Time Compilation
summary
Implements a per-function hybrid execution that combines GraalVM+Sulong AOT LLVM binaries with Graal JIT-managed AST execution, using a static config file to mark functions native or managed. Prototype alters call sites to use function pointers, disables cross-domain inlining, and handles symbol visibility and dual heaps. Benchmarks show up to 1.7x warm-up speedups for native-hot functions, with manual hybrids (few hot functions, <4% of functions but ~20–25% runtime) sitting between native-fast warmup and managed-best peak; crashes occur if native code touches managed-only data.
AI-written summary · about
chapters (13)
- 0:00Hybrid execution intro
- 1:22Polyglot world and GraalVM
- 3:31Executing C with Sulong
- 5:37Managed vs native in Sulong
- 7:27Hybrid execution combining
- 9:11Basic AST and binary impl
- 11:39Polyglot example JS Python C
- 13:47Memory and data access challenges
- 15:36Static variables and file visibility
- 16:42Evaluation and benchmarks
- 19:55Performance trade-offs
- 20:35Future work and auto selection
- 21:19Conclusion and Q&A
related talks
30mOn Automating Hybrid Execution of Ahead-of-Time and Just-in-Time Compiled Code
26mAn Analysis of Compiled Code Reusability in Dynamic Compilation
33mNew Opportunities for Developers with GraalVM
01h 00mStatic Java, GraalVM Native and OpenJDK
46mAhead Of Time (AOT) Internals
38mGraal
50mOne VM to Rule Them All
29mGraalVM in a Nutshell
