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
AI時代のPlaywright活用(システムテストを自動化する ー 実行エンジンにPla ywrightを選んだ理由)
ynisqa1988
2
1k
Flutter研修【MIXI 26新卒技術研修】
mixi_engineers
PRO
1
150
SRENEXT_2026_Chairs__Talks_in_Tamachi.sre.pdf
srenext
1
160
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
1
210
A Bag-of-Documents Model for Query Specificity
dtunkelang
0
110
PHPで作って学ぶリアルタイム音声対話AIとWebSocket入門 by ムナカタ
munakata
0
160
複数プロダクト組織のAIネイティブ化における戦略 / AICon2026_kude
rakus_dev
0
330
AI時代におけるテストの基礎の再定義 / Rethinking the Fundamentals of Testing in the AI Era
mineo_matsuya
15
5.7k
Playwright × AI Agent でE2Eテストはどう変わるか AI駆動テストの可能性と実用検証の結果
taiga7543
2
880
AIエージェントがあれば技術書なんてすぐ書けるでしょ→無理でした
watany
6
490
AI Native なプロダクト組織の立ち上げ方 : 生産性 100 倍への挑戦
mikesorae
0
1.5k
文字起こし基盤の信頼性
abnoumaru
0
140
Featured
See All Featured
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
390
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
420
Believing is Seeing
oripsolob
1
170
HDC tutorial
michielstock
2
750
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
420
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
740
Measuring & Analyzing Core Web Vitals
bluesmoon
9
910
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1k
Mind Mapping
helmedeiros
PRO
1
290
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
390
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
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!