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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
nari
November 10, 2013
Technology
4.5k
2
Share
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
110
Other Decks in Technology
See All in Technology
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
もりもり新機能を一挙紹介! AgentCoreに入門して、AWS上にAIエージェントを構築しよう
minorun365
PRO
6
610
long-running-tasks
cipepser
2
460
Databricks における 生成AIガバナンスの実践
taka_aki
1
130
プラットフォームエンジニア ワークショップ/ platform-workshop
databricksjapan
0
160
製造業のクラウド活用最適解〜AI,DXを加速するデータ基盤の作り方〜
hamadakoji
0
230
Terraformモジュールは、なぜ「魔境」化するのか
hayama17
1
140
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
2.8k
Java正規表現エンジン(NFA)の仕組みと パフォーマンスを維持するための最適化手法
takeuchi_132917
0
170
BigQuery の Cross-cloud Lakehouse への歩み
phaya72
2
330
Claude Codeですべての日常業務を爆速化しよう!
minorun365
PRO
17
16k
OpenID Connectによるサービス間連携
takesection
0
150
Featured
See All Featured
Discover your Explorer Soul
emna__ayadi
2
1.1k
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
1
130
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
150
The agentic SEO stack - context over prompts
schlessera
0
790
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
From π to Pie charts
rasagy
0
200
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.4k
WENDY [Excerpt]
tessaabrams
11
38k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.7k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
280
Designing for Performance
lara
611
70k
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!