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
How to make Perfume dance
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
nari
November 10, 2013
Technology
4.5k
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
How to make Perfume dance
Let's dance!
nari
November 10, 2013
More Decks by nari
See All by nari
Parallel worlds of CRuby's GC
nari
1
120
Other Decks in Technology
See All in Technology
20260807_第6回_関東kaggler会LT_claw系bot xangiと始める、"寂しくない" kaggle
sugupoko
0
300
会社紹介資料 / Sansan Company Profile
sansan33
PRO
24
430k
MulticaとPi Coding Agentで、小規模OSSを30本同時運用した流れ
eiei114
0
130
『三匹の子ぶた』から学ぶネットワークセキュリティの昔と今 / Network Security: Then and Now Through the Lens of The Three Little Pigs
nttcom
1
6.2k
Genie Codeハンズオン基礎編
taka_aki
1
130
Data Hubグループ 紹介資料
sansan33
PRO
0
3.2k
Webアクセシビリティ入門 2026
recruitengineers
PRO
3
630
ブラウザ研修 2026
recruitengineers
PRO
6
1.1k
Service Connect 上のサービスに ECS Service の外側から到達できなかった話
ota1022
1
260
生成 AI の基礎 〜 サンプル実装で学ぶ基本原理
enakai00
7
4.4k
Agent 時代の Kaggle 展望 / kaggle-in-the-agentic-era
upura
1
780
AWS ネットワーク構築でハマった(ハマりかけた) 5選とそこから得た教訓
nagisa53
4
240
Featured
See All Featured
ラッコキーワード サービス紹介資料
rakko
1
4.4M
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
So, you think you're a good person
axbom
PRO
2
2.1k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
350
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
2
490
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.5k
Code Review Best Practice
trishagee
74
20k
GitHub's CSS Performance
jonrohan
1033
470k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
340
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
210
The SEO identity crisis: Don't let AI make you average
varn
0
530
Transcript
#rubyconf 13 nari/@nari3/authorNari Network Applied Communication Laboratory How to make
Perfume dance
Self-introduction ➔ nari, @nari3, authorNari ➔ A CRuby committer ➔
I'm a creator of Bitmap Marking GC in Ruby 2.0
Perfume
http://perfume-dev.github.io/
This motion data is free to use
There are many works on the official site
I wanted to make Perfume dance with Ruby!!
Hacking plan ➔ Use Ruby/SDL. ➔ Motion data format is
BVH – We can parse it with bvh gem :) ➔ Done!
First prototype http://youtu.be/rjoFPGmJyn0
Yes! There is a bug! ➔ I fixed wrong matrix
calculation ➔ Done!
Second prototype http://youtu.be/f9j4Qh5A3ys
But there is a unfavorable line of code
GC.disable
Why?
The motion data is big (2.0MB) -------- -------- -------- *.bvh
parse Create many read only objects
GC must scans these object each time GC ✔ ✔
✔ ✔ ✔ ✔ ✔ Stop The World Stop time is long
DEMO
In Ruby 2.1, ➔ Introduced Generational GC a.k.a RGenGC by
ko1-san ➔ This feature saves Perfume's dance.
GC scans these object sometimes GC ✔ ✔ ✔ ✔
✔ ✔ Don't stop Stop time is short ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ ✔ Next GC Ignored
DEMO
Conclusion ➔ RGenGC is cool. ➔ ko1-san is also cool.
➔ Ruby 2.1 will be great! – You should not use GC.disable
Thank you!