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
Ruby Lugdunum 2012: Message in a Bottle
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Konstantin Haase
June 23, 2012
Technology
620
2
Share
Ruby Lugdunum 2012: Message in a Bottle
Konstantin Haase
June 23, 2012
More Decks by Konstantin Haase
See All by Konstantin Haase
RubyConf Philippines 2017: Magenta is a Lie
rkh
0
230
How We Replaced Salary Negotiations with a Sinatra App
rkh
17
4.3k
HTTP (RubyMonsters Edition)
rkh
5
1.2k
GCRC 2015: Abstract Thoughts on Abstract Things
rkh
1
390
Frozen Rails: Magenta - The Art Of Abstraction
rkh
3
340
RedDotRubyConf 2014: Magenta is a Lie - and other tales of abstraction
rkh
0
980
Ancient City Ruby: Hack me, if you can!
rkh
2
460
Boston I/O: Continuous Integration
rkh
3
330
Steel City Ruby: Architecting Chaos
rkh
4
980
Other Decks in Technology
See All in Technology
ECSのTerraformモジュールにコントリビュートした話
harukasakihara
1
330
Slack MCPでインシデント対応とFAQ生成を加速する:社内ワークショップの実践
lycorptech_jp
PRO
0
290
React Compiler導入の効果と運用の工夫
kakehashi
PRO
3
320
実例から学ぶ GuardDuty(SSH BruteForce)調査の全体フローと勘所【SecurityJAWS】
cscengineer
PRO
1
200
続 運用改善、不都合な真実 〜 物理制約のない運用改善はほとんど無価値 / 20260518-ssmjp-kaizen-no-value-without-physical-constraints
opelab
3
330
その英語学習、AWSで代替できませんか?
suzutatsu
1
210
AI時代に求められる思考のパラダイムシフト
nrinetcom
PRO
1
130
シンデレラなんかになりたくない!ガラスの靴が割れた時代にどう歩く?
nomizone
0
140
DI コンテナ自動生成ツールを実装してみた / intro-autodi
uhzz
0
830
TSKaigi 2026 - 型プラグインシステムの実装に使われるテクニック
teamlab
PRO
1
220
"スキルファースト"で作る、AIの自走環境
subroh0508
1
690
GitHub Copilot CLI で考える複数エージェント設計
tomokusaba
0
150
Featured
See All Featured
Practical Orchestrator
shlominoach
191
11k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
150
Information Architects: The Missing Link in Design Systems
soysaucechin
0
930
How GitHub (no longer) Works
holman
316
150k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
570
VelocityConf: Rendering Performance Case Studies
addyosmani
333
25k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
410
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.9k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
210
Fireside Chat
paigeccino
42
3.9k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
200
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
340
Transcript
MESSAGE IN A BOTTLE Konstantin Haase Ruby Lugdunum June 23,
2012
@konstantinhaase (I’m sorry about that) rkh on github
Sinatra Rack, Tilt, Rubinius, ...
None
None
None
None
None
None
Ruby 1.8 is slow because it's interpreted.
Surprise! Ruby 1.9 is interpreted, too.
THANKS
Ruby
Internals
Performance
None
RubyMotion
WHAT WE’LL LOOK INTO MRI: method dispatch and execution Rubinius:
inline caches and JIT JRuby: invokedynamic
None
THEY JUST LOVE BYTECODE
None
MRI
Rubinius
JRuby (JVM 1.6)
None
Source Code Parser Parse Tree Interpreter Bytecode Compiler Bytecode Interpreter
JIT Machine Code CPU VM
THE PLAN Find Method Execute Method
Performance
HOW TO SPEED UP? Find Method Faster Execute Method Faster
FIND FASTER Inline Cache (aka Call/ Send Site Cache) Lookup
Cache Inlining
EXECUTE FASTER Reduce operations Just-in-time compilation Speed up search
None
rb_method_entry rb_method_entry_without_cache search_method
None
None
None
None
None
None
None
None
None
None
None
None
None
SPECIALIZED METHODS cached bytecode code with breakpoints specialized for arguments
JITed code
None
None
None
None
None
None
None
Process invokedynamic JVM method bootstrap guard fallback
None
THANKS