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
The great Ruby Showdown
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
chrismdp
February 22, 2012
Technology
700
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
The great Ruby Showdown
How do the different Rubies out there perform with a non trivial ruby application?
chrismdp
February 22, 2012
More Decks by chrismdp
See All by chrismdp
Why Rails is still relevant for startups in 2021
chrismdp
0
140
5 ways I screwed up Sol Trader's launch
chrismdp
0
230
Pathfinding Peril SPA 2016
chrismdp
0
230
Pathfinding Peril - BCS 2014
chrismdp
0
230
Separating allocation from code - NDC
chrismdp
0
170
Separating Allocation from Code
chrismdp
1
600
Extreme Isolation Workshop
chrismdp
1
160
Who's code is it anyway?
chrismdp
0
140
Extreme Isolation (Lightning talk)
chrismdp
1
180
Other Decks in Technology
See All in Technology
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
240
WAF 運用改善の承認サイクル/SRE_BizReach_MIXI_1
visional_engineering_and_design
0
150
module Synths; end
asonas
1
120
多摩川(.dev)ランニング入門 / Tamagawa.dev#3
fujiwara3
3
380
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
200
Azure App Service / Container Apps の組み込み認証
kuniteru
0
200
AI時代に、プロダクトの数だけ積み上がる所有コストをどうエンジニアリングするか / Engineering the Cost of Ownership
kzkmaeda
0
1k
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
3
2.6k
Microsoft 365 Copilot chat -tekoälypalvelun tietosuojaongelmat
hponka
0
430
ペアプロの価値はコードを書くことだけじゃない
codmoninc
PRO
0
110
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
240
PdMをやめて、 "プロダクトビルダー"という 働き方に変えました / PdM to Product Builder
shikichee
2
720
Featured
See All Featured
So, you think you're a good person
axbom
PRO
2
2.1k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
230
How to build a perfect <img>
jonoalderson
1
6k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
530
How to make the Groovebox
asonas
2
2.4k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Designing Powerful Visuals for Engaging Learning
tmiket
1
530
How STYLIGHT went responsive
nonsquared
100
6.3k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
The untapped power of vector embeddings
frankvandijk
2
1.9k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
250
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
Transcript
The great Ruby Showdown How do the different Rubies out
there perform with a non trivial ruby application? Chris Parsons - @chrismdp Wednesday, 22 February 12
Battleship http://github.com/ threedaymonk/ battleship Wednesday, 22 February 12
Only one round No display GuntherPlayer with fixed random seed
Running on 2009 MBP http://github.com/ chrismdp/battleship My changes Wednesday, 22 February 12
Fixed random seed doesn’t work! Different Rubies do random differently
Need to perform 50 ‘ticks’ instead Also different startup times was a headache Lessons Wednesday, 22 February 12
The players mri 1.8.7 mri 1.9.2 mri 1.9.3 jruby maglev
rubinius macruby Wednesday, 22 February 12
Ruby 1.8.7 • No show - code doesn’t work •
You shouldn’t be using it anyway • Ruby 1.9.2 has out and stable since summer 2010 Wednesday, 22 February 12
MacRuby 0.10 • Ruby based on the Objective-C Runtime •
Long startup time • 442.65s (!!) • 431.90s (!!) Wednesday, 22 February 12
Rubinius (head) • Used: RBXOPT=-X19 rbx -v (can default to
1.9 too) • Long startup time • 56.41s • 52.35s • 90.16s (!) • 94.67s (!!) • 63.07s - very variable! Wednesday, 22 February 12
Maglev (head) • Based on vm-ware’s GemStone virtual machine •
Can “transparently manage very large datasets” • 44.91s • 44.99s • 53.02s • 45.53s Wednesday, 22 February 12
Ruby 1.9.2 • The ‘standard’ during the tournament • Was
focused on a ‘complete’ version of ruby 1.9 • 28.50s • 28.74s • 28.51s • 28.97s Wednesday, 22 February 12
Jruby (1.9) • A number of changes needed to the
app Not an ‘out the box’ change, but still worked after tweaks. • Used: JRUBY_OPTS='--1.9 --server -J-Xmx1024m' • Long startup time: ~ 20-30 seconds • 25.93s • 25.05s • 27.60s • 26.26s Wednesday, 22 February 12
Ruby 1.9.3 • Better GC - doesn’t stop the world
for as long • Focused on a better implementation rather than compliance • 23.64s • 23.80s • 26.30s • 24.67s Wednesday, 22 February 12
The Obligatory Graph mri 1.9.3 JRuby 1.9 mri 1.9.2 Maglev
Rubinius mri 1.8.7 0 20 40 60 80 (lower is better) Wednesday, 22 February 12
The Obligatory Graph mri 1.9.3 JRuby 1.9 mri 1.9.2 Maglev
Rubinius MacRuby 10 mri 1.8.7 0 125 250 375 500 (lower is better) Wednesday, 22 February 12
Conclusions Wednesday, 22 February 12
Use 1.9.3 Wednesday, 22 February 12
JRuby 1.9 Slow to start, but just as good Wednesday,
22 February 12
MRI 1.9.2 Ultra-stable Wednesday, 22 February 12
MacRuby Rubinius Need work Wednesday, 22 February 12
Maglev The new kid Looks promising Wednesday, 22 February 12
~ The End ~ Chris Parsons @chrismdp Wednesday, 22 February
12