$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
How to make Perfume dance
Search
nari
November 10, 2013
Technology
2
4.5k
How to make Perfume dance
Let's dance!
nari
November 10, 2013
Tweet
Share
More Decks by nari
See All by nari
Parallel worlds of CRuby's GC
nari
1
99
Other Decks in Technology
See All in Technology
株式会社ビザスク_AI__Engineering_Summit_Tokyo_2025_登壇資料.pdf
eikohashiba
1
110
AWSの新機能をフル活用した「re:Inventエージェント」開発秘話
minorun365
2
460
AIBuildersDay_track_A_iidaxs
iidaxs
4
1.3k
Next.js 16の新機能 Cache Components について
sutetotanuki
0
190
フィッシュボウルのやり方 / How to do a fishbowl
pauli
2
390
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
1
190
New Relic 1 年生の振り返りと Cloud Cost Intelligence について #NRUG
play_inc
0
240
さくらのクラウド開発ふりかえり2025
kazeburo
2
1.2k
普段使ってるClaude Skillsの紹介(by Notebooklm)
zerebom
8
2.2k
Kiro を用いたペアプロのススメ
taikis
4
1.8k
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
220
日本Rubyの会: これまでとこれから
snoozer05
PRO
6
240
Featured
See All Featured
Bash Introduction
62gerente
615
210k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
91
For a Future-Friendly Web
brad_frost
180
10k
GitHub's CSS Performance
jonrohan
1032
470k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
0
190
Context Engineering - Making Every Token Count
addyosmani
9
550
Building AI with AI
inesmontani
PRO
1
570
Code Reviewing Like a Champion
maltzj
527
40k
Exploring anti-patterns in Rails
aemeredith
2
210
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
100
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.1k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
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!