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
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
95k
「使いにくい」も「運用疲れ」も卒業する UIデザイナーとエンジニアが創る持続可能な内製開発
nrinetcom
PRO
1
780
Datadog Cloud Cost Management で実現するFinOps
taiponrock
PRO
0
140
Bill One 開発エンジニア 紹介資料
sansan33
PRO
5
18k
Claude Codeの進化と各機能の活かし方
oikon48
10
2.9k
白金鉱業Meetup_Vol.22_Orbital Senseを支える衛星画像のマルチモーダルエンベディングと地理空間のあいまい検索技術
brainpadpr
2
210
問い合わせ自動化の技術的挑戦
recruitengineers
PRO
2
150
製造業ドメインにおける LLMプロダクト構築: 複雑な文脈へのアプローチ
caddi_eng
1
450
AI Agentにおける評価指標とAgent GPA
tsho
1
300
「ストレッチゾーンに挑戦し続ける」ことって難しくないですか? メンバーの持続的成長を支えるEMの環境設計
sansantech
PRO
1
320
AI時代にエンジニアはどう成長すれば良いのか?
recruitengineers
PRO
1
140
Databricksアシスタントが自分で考えて動く時代に! エージェントモード体験もくもく会
taka_aki
0
320
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
470
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
Speed Design
sergeychernyshev
33
1.6k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
79
Why Our Code Smells
bkeepers
PRO
340
58k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Statistics for Hackers
jakevdp
799
230k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.9k
Odyssey Design
rkendrick25
PRO
2
530
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!