Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BRUG: Evolution of Ruby GC
Search
Sergey Avseyev
October 03, 2013
Programming
300
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BRUG: Evolution of Ruby GC
Sergey Avseyev
October 03, 2013
More Decks by Sergey Avseyev
See All by Sergey Avseyev
Couchbase Cluster: The Ruby SDK
avsej
1
110
Couchbase and Rails
avsej
3
1.4k
Other Decks in Programming
See All in Programming
AIで効率化できた業務・日常
ochtum
0
120
Signal Forms: Details & Live Coding @enterJS 2026 in Mannheim
manfredsteyer
PRO
0
100
Java × distroless で 軽量なコンテナイメージを / Java on Distroless
contour_gara
0
530
ふつうのFeature Flag実践入門
irof
7
3.7k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
540
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
7
4.1k
TAKTでAI駆動開発の品質を設計する
j5ik2o
6
1.2k
過去最大のMCPアップデート! 2026-07-28 RC版の謎に迫る
licux
6
250
[2026年度第1回ORセミナー] 計画最適化ベンチャーと競技プログラミング人材
terryu16
0
260
Vue × Nuxt × Oxc どこまで使える?実運用の現在地
andpad
0
220
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
120
AutonomyとControlのあいだ:Graflowで記述するAIエージェント協調
myui
0
120
Featured
See All Featured
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.3k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
360
The Pragmatic Product Professional
lauravandoore
37
7.3k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
1.1k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Designing for humans not robots
tammielis
254
26k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
290
The Curious Case for Waylosing
cassininazir
1
380
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
320
Practical Orchestrator
shlominoach
191
11k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.1k
Transcript
Evolution of Ruby GC
alloca(3) void f1(int n) { int *r; r = alloca(n
* sizeof(int)); ... } int f2() { float x; f1(42); ... }
alloca(3) f2() void f1(int n) { int *r; r =
alloca(n * sizeof(int)); ... } int f2() { float x; f1(42); ... } float
alloca(3) f2() void f1(int n) { int *r; r =
alloca(n * sizeof(int)); ... } int f2() { float x; f1(42); ... } float f1(42) int *
alloca(3) f2() void f1(int n) { int *r; r =
alloca(n * sizeof(int)); ... } int f2() { float x; f1(42); ... } float f1(42) int[42] int *
alloca(3) f2() void f1(int n) { int *r; r =
alloca(n * sizeof(int)); ... } int f2() { float x; f1(42); ... } float
Reference Counting 1
Reference Counting 2
Reference Counting 1
Reference Counting 0
Reference Counting 1 1 Cycle!
Copying GC Root Objects
Copying GC Root Objects
Copying GC Root Objects
Copying GC Root Objects
Copying GC Root Objects
Copying GC Root Objects
Copying GC Root Objects
Copying GC Root Objects
Copying GC Root Objects
Mark & Sweep Root Objects
Mark & Sweep Root Objects
Mark & Sweep Root Objects
Mark & Sweep Root Objects
Mark & Sweep Root Objects
Mark & Sweep Root Objects
Mark & Sweep Root Objects
Mark & Sweep Root Objects
Mark & Sweep Root Objects
Mark & Lazy Sweep: 1.9 heap free list NULL
Mark & Lazy Sweep: 1.9 heap free list
Mark & Lazy Sweep: 1.9 heap free list
Mark & Lazy Sweep: 1.9 heap free list NULL
Mark & Lazy Sweep: 1.9 heap free list NULL
Mark & Sweep: 2.0 Root Objects Bitmap
Generational GC: 2.1 Большинство либо умирают молодыми, либо выживают и
существуют достаточно долго
Generational GC: 2.1 Root Objects Minor GC: 1
Generational GC: 2.1 Root Objects Minor GC: 1
Generational GC: 2.1 Root Objects Minor GC: 1
Generational GC: 2.1 Root Objects Minor GC: 1
Generational GC: 2.1 Root Objects Minor GC: 1
Generational GC: 2.1 Root Objects Minor GC: 1
Generational GC: 2.1 Root Objects Minor GC: 1
Generational GC: 2.1 Root Objects
Generational GC: 2.1 Root Objects
Generational GC: 2.1 Root Objects Minor GC: 2
Generational GC: 2.1 Root Objects Minor GC: 2
Generational GC: 2.1 Root Objects Remember Set
Generational GC: 2.1 Root Objects Remember Set Major GC
Generational GC: 2.1 Root Objects Remember Set Major GC
Generational GC: 2.1 Root Objects Remember Set Major GC
Generational GC: 2.1 Root Objects Remember Set
Generational GC: 2.1 Old New
Generational GC: 2.1 Old New Write Barrier
Generational GC: 2.1 Root Objects Remember Set val = rb_str_new("foo");
RARRAY_PTR(ary)[0] = val;
Generational GC: 2.1 Root Objects Remember Set val = rb_str_new("foo");
RARRAY_PTR(ary)[0] = val;
Generational GC: 2.1 Root Objects Remember Set val = rb_str_new("foo");
RARRAY_PTR(ary)[0] = val;
Спасибо Вопросы?