Improving TruffleRuby’s Startup Time with the SubstrateVM
summary
TruffleRuby compiles its Java runtime ahead-of-time with the SubstrateVM native-image generator to produce a static binary that prebuilds ASTs and core-library data. Startup for hello world drops from 1.7s to ~0.1s and the Ruby spec run falls from 47.4s to ~4.9s; peak throughput drops ~15% (opcarat goes from 197 to 169 fps). The project uses Graal/Truffle, LLVM bitcode for C extensions, and is publicly available and working.
AI-written summary · about
chapters (34)
- 0:00Introduction
- 0:46Disclaimer
- 1:11What is TruffleRuby
- 2:24TruffleRuby completeness
- 3:03TruffleRuby implementation
- 6:16Milestones
- 8:03Application Life Cycle
- 9:06Application Profiles
- 11:48Peak Performance
- 12:33Performance Comparison
- 12:56The Dilemma
- 14:38SubstrateVM
- 14:51TruffleRuby
- 15:56Substrate VM
- 16:57Java C
- 19:22Opportunities
- 22:15Performance
- 22:45Why the performance hit
- 24:12Summary
- 25:30Future work
- 28:29Team
- 29:14Contact
- 29:36Questions
- 29:53Build time increase
- 30:33Rails community
- 30:56Running C extensions
- 31:38Seulong project
- 32:18C extensions
- 34:09Dual approach
- 34:32Risk
- 35:39Overhead
- 38:24Technical
- 38:45Key Idea
- 40:48Conclusion
related talks
44mImproving 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
37mState of JRuby 2014
36mTBA
