Matt Valentine-House
Matt Valentine-House
  • @eightbitraptor

Matt has been working with Ruby in various capacities since 2007. He is currently a Senior Developer at Shopify working in the Ruby Infrastructure team, predominantly working on garbage collection and memory management. When he's not scratching his head over segmentation faults he can be found brewing beer and building mechanical keyboards.

Plug & Play Garbage Collection with MMTk

Dynamic memory management is a complex and often controversial topic. There are a wide variety of different algorithms and approaches that one can take towards managing memory, both manually and automatically.

Some language implementations tend to pick their favourite approach early in their development, like Pythons reference counting and Ruby's extended Mark Sweep collector, and stick with it for the long term.

Others, like the JVM, aim to have a more configurable approach, with multiple Garbage Collection algorithms that can be configured at runtime, or even dynamically tuned by the VM during program execution.

What if we could have that for Ruby?

This talk is going to be an exploration of how we can support multiple GC algorithms in Ruby. We'll talk about building a unified memory management API, and explore our integration with MMTk, a research project to build a unified memory management toolkit, with integrations into the JVM, v8, Julia, and now Ruby.

Presentation Material

Recorded video