~/talk

Reworking Memory Management in CRuby: A Practitioner Report

Talkat ISMM 2025 · on Tuesday, 2025-06-17· [ruby-on-rails]
links:none on file
links:none on file
slides:none on file

Reports integrating MMTk into CRuby by refactoring a non‑modular GC into a pluggable interface, implementing four stages: no-GC, non‑moving, copying (IMMIX/sticky IMMIX) and generational collection. Key engineering fixes are identifying PPP (potential pinning parents) to pin before scavenging, handling WB-unprotected legacy APIs by conservatively treating them as updated, and eliminating widespread finalizers by moving string/array/regexp payloads from malloc into the GC heap. The result runs Rails, upstreams a modular API (CRuby 3.4) and exposes remaining bottlenecks in finalization and parallel malloc.

AI-written summary · about

  1. 0:00Introduction
  2. 1:05CRuby GC history
  3. 2:52Motivation for MMTK
  4. 3:35Challenges with MMTK
  5. 4:40No GC and allocation
  6. 5:02Non-copying GC and stopping
  7. 5:44Copying GC and forwarding
  8. 9:00Generational GC and barriers
  9. 10:45Performance bottlenecks
  10. 13:38Refactoring finalizers
  11. 15:02Lessons and future
  12. 16:06Q&A
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.