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
Konstantin Haase
June 23, 2012
Technology
620
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
240
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
990
Ancient City Ruby: Hack me, if you can!
rkh
2
470
Boston I/O: Continuous Integration
rkh
3
340
Steel City Ruby: Architecting Chaos
rkh
4
980
Other Decks in Technology
See All in Technology
自律型AIエージェントは何を破壊するのか
kojira
0
160
2026TECHFRESH畢業分享會 - 原生還是跨平台? App 開發踩坑實錄
line_developers_tw
PRO
0
1.1k
"何を作るか"を任される エンジニアは、どう育つのか
yutaokafuji
1
680
Disciplined Vibes: Scaling AI-Assisted Engineering
sheharyar
0
150
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
480
2026TECHFRESH畢業分享會 - Lightning Talk - E起 See See : 電商推薦讀心術? 數據說了算
line_developers_tw
PRO
0
1.1k
2026 TECHFRESH 畢業分享會 - 開發日常大解密!從領域驅動到企業級上線
line_developers_tw
PRO
0
1.1k
なぜ Platform Engineering の土台に Kubernetes を選ぶのか
r4ynode
2
640
Oracle AI Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
6
2k
AIはどのように 組織のアジリティを変えるのか?
junki
3
860
Bedrock AgentCore RuntimeでAuth0 Changelog調査AIをアップグレードした話
t5u8a5a
1
160
エラーバジェットのアラートのタイミングを考える.pdf
kairim0
0
150
Featured
See All Featured
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
590
Game over? The fight for quality and originality in the time of robots
wayneb77
1
200
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Code Reviewing Like a Champion
maltzj
528
40k
GitHub's CSS Performance
jonrohan
1033
470k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
160
Building Adaptive Systems
keathley
44
3.1k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
620
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
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