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
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
220
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
330
RedDotRubyConf 2014: Magenta is a Lie - and other tales of abstraction
rkh
0
970
Ancient City Ruby: Hack me, if you can!
rkh
2
450
Boston I/O: Continuous Integration
rkh
3
330
Steel City Ruby: Architecting Chaos
rkh
4
960
Other Decks in Technology
See All in Technology
"まず試す"ためのDatabricks Apps活用法 / Databricks Apps for Early Experiments and Validation
nttcom
1
210
チームで育てるAI自走環境_20260409
fuktig
0
930
New CBs New Challenges
ysuzuki
1
150
Babylon.js を使って試した色々な内容 / Various things I tried using Babylon.js / Babylon.js 勉強会 vol.5
you
PRO
0
260
システムは「動く」だけでは 足りない - 非機能要件・分散システム・トレードオフの基礎
nwiizo
9
3.5k
シン・リスコフの置換原則 〜現代風に考えるSOLIDの原則〜
jinwatanabe
0
150
推し活エージェント
yuntan_t
1
870
OPENLOGI Company Profile for engineer
hr01
1
62k
2026年度新卒技術研修 サイバーエージェントのデータベース 活用事例とパフォーマンス調査入門
cyberagentdevelopers
PRO
3
4.5k
I ran an automated simulation of fake news spread using OpenClaw.
zzzzico
1
980
Podcast配信で広がったアウトプットの輪~70人と音声発信してきた7年間~/outputconf_01
fortegp05
0
240
主催・運営として"場をつくる”というアウトプットのススメ
_mossann_t
0
130
Featured
See All Featured
Fireside Chat
paigeccino
42
3.9k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
250
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
95
Test your architecture with Archunit
thirion
1
2.2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
160
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
700
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
670
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
200
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Designing Powerful Visuals for Engaging Learning
tmiket
1
330
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
3.8k
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