Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
ActiveJobUpdates
igaiga
1
320
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
500
"人"が頑張るAI駆動開発
yokomachi
1
170
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
500
Agent Skillsがハーネスの垣根を超える日
gotalab555
6
4.3k
普段使ってるClaude Skillsの紹介(by Notebooklm)
zerebom
8
2.2k
日本の AI 開発と世界の潮流 / GenAI Development in Japan
hariby
1
440
障害対応訓練、その前に
coconala_engineer
0
200
AWS運用を効率化する!AWS Organizationsを軸にした一元管理の実践/nikkei-tech-talk-202512
nikkei_engineer_recruiting
0
170
ハッカソンから社内プロダクトへ AIエージェント「ko☆shi」開発で学んだ4つの重要要素
sonoda_mj
6
1.7k
Bedrock AgentCore Memoryの新機能 (Episode) を試してみた / try Bedrock AgentCore Memory Episodic functionarity
hoshi7_n
2
1.9k
[Neurogica] 採用ポジション/ Recruitment Position
neurogica
1
120
Featured
See All Featured
SEO for Brand Visibility & Recognition
aleyda
0
4.1k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
66
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
120
Docker and Python
trallard
47
3.7k
Code Review Best Practice
trishagee
74
19k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
51
45k
svc-hook: hooking system calls on ARM64 by binary rewriting
retrage
1
28
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.7k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Digital Ethics as a Driver of Design Innovation
axbom
PRO
0
130
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
89
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!