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.4k
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
75
Other Decks in Technology
See All in Technology
Amplify 🩷 Bedrock 〜生成AI入門〜
minorun365
PRO
8
880
成長をサポートするピープルマネジメントのやり方
sioncojp
9
1.2k
【SORACOM UG 東海】あらゆるモノがつながる社会へ、IoT と SORACOM
soracom
PRO
1
150
Microsoft Intune 勉強会 第 2 回目
tamaiyutaro
2
460
IaCジェネレーターとBedrockで詳細設計書を生成してみた
tsukasa_ishimaru
4
890
非同期推論システムによるコスト削減と信頼性向上
koki_nishihara
1
360
開発パフォーマンスを最大化するための開発体制
ham0215
7
1.1k
コードや知識を組み込む / Incorporate Code and knowledge
ks91
PRO
0
150
Tellus の衛星データを見てみよう #mf_fukuoka
kongmingstrap
0
280
障害対応をちょっとずつよくしていくための 演習の作りかた
heleeen
1
1.7k
いいたいことちゃんという
tkengo
0
240
Cypress or Playwright?
rainerhahnekamp
0
170
Featured
See All Featured
The Pragmatic Product Professional
lauravandoore
26
5.8k
Building a Scalable Design System with Sketch
lauravandoore
457
32k
Atom: Resistance is Futile
akmur
260
25k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
123
39k
Infographics Made Easy
chrislema
238
18k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Building Better People: How to give real-time feedback that sticks.
wjessup
356
18k
Adopting Sorbet at Scale
ufuk
69
8.6k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
221
21k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.1k
What's in a price? How to price your products and services
michaelherold
238
11k
How To Stay Up To Date on Web Technology
chriscoyier
782
250k
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!