~/talk

Building a Compacting GC for MRI

Talkat RubyConf 2017 · 2017-11-15..11-17· [ruby]
slides:none on file

Claims a working compacting collector for MRI with a concrete implementation: a GC.compact API, a two-finger compaction mover that leaves T_MOVED forwarding records, and a pinned_bits table to avoid moving C-referenced, literal, and hash-keyed objects. Uses ObjectSpace.dump_all, /proc instrumentation and PSS measurements, and interoperates with NakayoshiFork heuristics. On a Rails-ish workload about 46% of objects are movable and a small test shows ~150KB PSS savings; proof of concept succeeds but overall savings at production scale remain uncertain.

AI-written summary · about

  1. 0:00Start
  2. 9:31Ruby String
  3. 10:15Ruby Array
  4. 11:07Ruby Fork
  5. 14:16Mark Phase
  6. 15:10Bitmap Marking
  7. 16:53Nakayoshi Fork Source
  8. 17:22Object Allocation
  9. 18:00Compact Before Fork
  10. 20:28Disadvantages
  11. 21:13Algorithm
  12. 22:55Reference Updating
  13. 26:24Reference Update Helpers
  14. 27:05Pure Ruby References
  15. 29:47Hashing
  16. 30:37Dual References
  17. 32:17String Literals
  18. 34:22Measuring Rails Boot
  19. 34:40Output
  20. 39:36Three Writing Systems
  21. 40:33Pronunciation
  22. 41:16Bone Script
~/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.