AST vs. Bytecode: Interpreters in the Age of Meta-Compilation
summary
Four interpreters (AST and bytecode implemented atop RPython and GraalVM/Truffle, running the SOM micro-language) compare interpreter performance, JIT peak, warmup, and RSS memory. Results show AST interpreters match or slightly beat bytecode at interpreter-only execution and reach roughly equal peak performance after JIT, while bytecode is more compact for static program size but sometimes allocates more at runtime; inline caches and quickening give modest gains. Benchmarks sit near Node.js/V8; JDK 20 serves as baseline.
AI-written summary · about
chapters (8)
- 0:00Interpreter basics
- 1:23Meta compilation overview
- 2:53AST vs bytecode approaches
- 5:43Evaluation methodology
- 6:58Runtime performance results
- 8:54Memory usage analysis
- 10:50Conclusion and findings
- 12:13Q&A session
related talks
48mOne VM To Rule Them All
40mJoy of Meta-Tracing Just-in-Time Compilation: More Than Just a VM Generator
28mTruffle
29mAutomatically Generated Supernodes for AST Interpreters Improve Virtual-machine P...
31mSimplifying and Optimizing Life on the Edge with Graal
41mVirtual Machines 101
37mGraalVM for Polyglots: Harder, Better, Faster, Stronger?
45mTwo-level Just-in-Time Compilation with One Interpreter and One Engine
