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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Sergey Avseyev
October 03, 2013
Programming
1
290
BRUG: Evolution of Ruby GC
Sergey Avseyev
October 03, 2013
Tweet
Share
More Decks by Sergey Avseyev
See All by Sergey Avseyev
Couchbase Cluster: The Ruby SDK
avsej
1
95
Couchbase and Rails
avsej
3
1.4k
Other Decks in Programming
See All in Programming
MUSUBIXとは
nahisaho
0
120
FOSDEM 2026: STUNMESH-go: Building P2P WireGuard Mesh Without Self-Hosted Infrastructure
tjjh89017
0
120
Python札幌 LT資料
t3tra
7
1.1k
2026年 エンジニアリング自己学習法
yumechi
0
120
Honoを使ったリモートMCPサーバでAIツールとの連携を加速させる!
tosuri13
1
170
Denoのセキュリティに関する仕組みの紹介 (toranoana.deno #23)
uki00a
0
280
AI時代の認知負荷との向き合い方
optfit
0
130
Apache Iceberg V3 and migration to V3
tomtanaka
0
130
なぜSQLはAIぽく見えるのか/why does SQL look AI like
florets1
0
430
[KNOTS 2026登壇資料]AIで拡張‧交差する プロダクト開発のプロセス および携わるメンバーの役割
hisatake
0
220
OCaml 5でモダンな並列プログラミングを Enjoyしよう!
haochenx
0
110
AI Agent Tool のためのバックエンドアーキテクチャを考える #encraft
izumin5210
6
1.8k
Featured
See All Featured
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Chasing Engaging Ingredients in Design
codingconduct
0
110
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
46
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.6k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
59
42k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
300
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
110
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
170
Heart Work Chapter 1 - Part 1
lfama
PRO
5
35k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
93
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
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;
Спасибо Вопросы?