Improving TruffleRuby’s Startup Time with the SubstrateVM
summary
TruffleRuby retargets to the SubstrateVM native-image and ahead-of-time compiles the interpreter so core Ruby files are pre-parsed as ASTs and encoding tables baked in. Startup drops from 1.7s to ~0.1s on Hello World and from 47.5s to under 7s for the language spec suite (47.5s → ~6.8s). Peak speed falls about 15% from 197 to 169 fps (197 → 169 fps), due to array and megamorphic dispatch differences, but the native image approach works.
AI-written summary · about
chapters (17)
- 0:00Introduction
- 1:07TruffleRuby Overview
- 2:58What is Truffle
- 7:19The Problem
- 10:15Current Status
- 13:12Peak Performance
- 15:00Development vs Production
- 17:51Native Extensions
- 18:01SubstrateVM
- 25:56Results
- 27:15Peak Performance Sacrifice
- 27:53Why did we take a performance hit
- 29:52Summary
- 31:40Future work
- 33:36Slides
- 33:57Team
- 34:50Contact
related talks
42mImproving TruffleRuby’s Startup Time with the SubstrateVM
43mParallel and Thread-Safe Ruby at High-Speed with TruffleRuby
30mFast Metaprogramming with Truffle
38m"Parallel and Thread-Safe Ruby at High-Speed with TruffleRuby"
40mKeynote: JRuby 9k
24mJust-in-Time Compiling Ruby Regexps on TruffleRuby
47mBetter Ruby
39m"300x faster ruby"
