Deoptimizing Ruby
summary
Explains deoptimization as a strategy for Ruby VMs like JRuby+Truffle: generate optimized compiled code that can fall back to the interpreter when Ruby’s dynamic features (monkey patching, bindings, set_trace_func, ObjectSpace, etc.) are used. Shows how making speculative assumptions and providing on-the-fly deoptimization lets the VM avoid runtime overhead for those features while still supporting full Ruby semantics when needed.
AI-written summary · about
related talks
33mRuby the Hard Way: Writing Bytecode to Optimize Plain Ruby
27mOptimizing ruby core
30mFast Metaprogramming with Truffle
41mHigh Performance Ruby
49mDeconstructing the hype: What people think is wrong with Ruby?
28mSplitting: the Crucial Optimization for Ruby Blocks
41mPerformance Improvement of Ruby 2.7 JIT in Real World
47mHigh Performance Ruby
