Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
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
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
150
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
330
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
3
370
Intent as Code
shoppingjaws
6
1.1k
変化を抱擁するドキュメントの作り方 - ビジネスルール駆動開発がもたらす、コードとの新しい関係
ioki
2
220
フロントエンドUIフレームワークのこれまでとこれから
ssssota
5
2.9k
Are APIs Still Relevant in the AI Era?
soyuka
0
300
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
5
4.3k
Everything will be SERVERLESS — 信じて運用した10年の経験値 / Everything Will be Serverless — Lessons Learned from 10 Years of Operational Experience
seike460
PRO
1
460
The Rails Doctrine Decade
koic
2
340
Apple Intelligence を用いた個人情報誤送信防止、及びユーザーリクエスト体験の改善について
yukiny
0
130
技術的負債を組織課題として解く-増えすぎたマイクロサービスとの戦い-
reimaru
1
2.3k
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
550
Rails Girls Zürich Keynote
gr2m
96
14k
What's in a price? How to price your products and services
michaelherold
247
13k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
370
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.3k
Building Applications with DynamoDB
mza
96
7.2k
Building AI with AI
inesmontani
PRO
1
1.2k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
330
How to build a perfect <img>
jonoalderson
1
6k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
770
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.4k
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;
Спасибо Вопросы?