Ruby3: What's Missing?
summary
Ruby 3 targets concrete wins: generational and incremental GC plus object compaction reduce pause times and return pages to the OS, lowering memory use; MJIT compiles bytecode to C and shows a 2.8× speedup on a CPU‑bound NES benchmark but slows some Rails workloads; a lightweight JIT and a staged compiler plan aim to fix that; concurrency work introduces isolated object spaces (guilds) and cooperative auto‑fibers for CPU and I/O separation; static typing via RBS/RBI plus a TyProfiler (abstract interpretation) generates type signatures.
AI-written summary · about
chapters (46)
- 0:00Start
- 10:32Memory is the First Bottleneck
- 10:42GC Improvement
- 11:25Generational GC
- 11:55Reduce GC Time
- 13:58Incremental Generation Support
- 14:11Reduce GC Pause Time
- 16:38Short-Life Hypothesis
- 17:23Avoid malloc for Short-Life Objects
- 18:12Object Compaction
- 19:47Total Memory Consumption
- 19:57Mostly Moving Compaction
- 20:13Explicit Compaction
- 20:41Memory is not the only Bottleneck
- 20:56Just-in-Time Compiler
- 21:08Compile Ruby bytecode to C
- 21:21Dynamic Loading
- 22:59Too Many Methods • Memory Bottleneck
- 24:30The Other Way to Improve Performance
- 24:40Web is a Multi-Core Aware Architecture
- 24:50Falcon (Multi-Fiber)
- 25:00Concurrency is the key to the Future
- 25:13Global Interpreter Lock
- 25:38New Concurrency Model
- 26:35WebWorkers or Isolate in JavaScript
- 27:27Far Easier than Threads
- 28:12How about Bigger Teams/ Projects?
- 29:25Python3: Type Annotation
- 30:49Static Type Components
- 31:09Type Definition Syntax (rbi)
- 31:23Separate File That Describes Types
- 31:55A Tool to Generate Type Database
- 32:09Type Definitions for Libraries
- 32:24Standard Libraries
- 33:26Find Conflicts with Type Definitions
- 34:17Static Type Checker
- 34:27Sorbet from Stripe
- 34:51Use rbi Type Definitions
- 36:00Without any type annotations (if you don't like)
- 36:19Remember the Goal of Ruby is "To Make Programmers Happy"
- 36:32Better Concurrency Support
- 37:22Frozen String Literals
- 39:12And Not Work Well With Static Types
- 39:24Only Major Incompatibility Change
- 40:06Not Regular Expression
- 41:15To Sustain Our Lives








