Opening Day 3 Keynote
summary
Findings: Ruby’s gem_prelude causes O(N) require scans and switching to an explicit gem_prelude patch (gem "name" before require) yields O(1) startup lookups and exposes a RubyGems regression in 2.5.2–2.6.2 that slows binstubs. Compiling and caching Ruby bytecode speeds Rails boot by about precompiled bytecode ~30%. Polymorphic inline caches rarely help (only ~3% call sites), but sharing cache keys for singleton classes gives ~singleton-class cache-key sharing ~45% improvement. Built a heap-fragmentation inspector (heapfrag) and proposes page-layout/COW optimizations.
AI-written summary · about
chapters (22)
- 0:00Start
- 0:12Aaron Henderson
- 1:56Aaron Patterson
- 8:30What's New in Rails 5
- 12:25Appeal to Startups
- 18:30Boot Time Performance Runtime Performance and Memory Efficiency
- 19:37Boot Time Performance
- 22:14Measurement by Elimination
- 23:26Loading Rubygems
- 30:30Booting Up Rails
- 30:44Startup Times
- 32:43Program Flow
- 33:13Example of a Compilation Script
- 33:35Load and Execute this Bytecode
- 36:37Runtime Performance
- 37:43Inline Caching
- 40:32What Class Is Var
- 43:43Copy-on-Write
- 43:59Copy-on-Write Optimizations
- 45:10Memory Layout
- 49:07Trade Offs
- 50:26Five Lessons








