Главная
Study mode:
on
1
Intro
2
BSON gem
3
Ruby heap
4
Allocating memory
5
Mark and sweep
6
The heap after GC
7
Reality check
8
Memory bloat
9
What I'd learned so far
10
Ruby objects in C
11
Declaring new Ruby types
12
Memory compaction and C extensions
13
Garbage collection and C extensions
14
Mark callbacks
15
Garbage collection with mark callback
16
Marking long-lived objects Extension VALUE greeting
17
Mark and pin
18
Elementary, my dear
19
The suspects
20
The culprit
21
The solution
22
Moving forward
23
rb_gc_mark_no_pin()
24
Compaction callback
25
What I learned
26
Sources
27
Summary
Description:
Dive into the intricacies of Ruby memory management in this 33-minute conference talk by Emily Giurleo at Ruby Central. Explore how a single bug report led to a deep understanding of heap allocation, garbage collection, and memory compaction in Ruby 2.7. Learn about the implementation of Ruby objects in C, the challenges of memory bloat, and the introduction of manual memory compaction. Discover the interplay between C extensions and garbage collection, including mark callbacks and compaction techniques. Follow along as Giurleo unravels the mystery behind a specific bug, presents the solution, and shares valuable insights gained from this investigative journey. Gain a comprehensive understanding of Ruby's memory management system and its evolution through this informative and engaging presentation.

The Bug that Forced Me to Understand Memory Compaction

Ruby Central
Add to list
0:00 / 0:00