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
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
110
Other Decks in Technology
See All in Technology
「使いにくい」も「運用疲れ」も卒業する UIデザイナーとエンジニアが創る持続可能な内製開発
nrinetcom
PRO
1
780
LINEヤフーにおけるAI駆動開発組織のプロデュース施策
lycorptech_jp
PRO
0
400
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.4k
マルチロールEMが実践する「組織のレジリエンス」を高めるための組織構造と人材配置戦略
coconala_engineer
2
410
Exadata Database Service on Dedicated Infrastructure(ExaDB-D) UI スクリーン・キャプチャ集
oracle4engineer
PRO
7
7.1k
Sansan Engineering Unit 紹介資料
sansan33
PRO
1
4k
Webアクセシビリティ技術と実装の実際
tomokusaba
0
210
男(監査)はつらいよ - Policy as CodeからAIエージェントへ
ken5scal
5
730
LINEアプリ開発のための Claude Code活用基盤の構築
lycorptech_jp
PRO
2
1.4k
ヘルシーSRE
tk3fftk
2
240
「ヒットする」+「近い」を同時にかなえるスマートサジェストの作り方.pdf
nakasho
0
110
LINE Messengerの次世代ストレージ選定
lycorptech_jp
PRO
19
7.3k
Featured
See All Featured
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Become a Pro
speakerdeck
PRO
31
5.8k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
130
GitHub's CSS Performance
jonrohan
1032
470k
Color Theory Basics | Prateek | Gurzu
gurzu
0
230
Building the Perfect Custom Keyboard
takai
2
710
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.4k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
79
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
How to make the Groovebox
asonas
2
2k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.4k
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!