$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
The great Ruby Showdown
Search
chrismdp
February 22, 2012
Technology
2
670
The great Ruby Showdown
How do the different Rubies out there perform with a non trivial ruby application?
chrismdp
February 22, 2012
Tweet
Share
More Decks by chrismdp
See All by chrismdp
Why Rails is still relevant for startups in 2021
chrismdp
0
110
5 ways I screwed up Sol Trader's launch
chrismdp
0
170
Pathfinding Peril SPA 2016
chrismdp
0
210
Pathfinding Peril - BCS 2014
chrismdp
0
180
Separating allocation from code - NDC
chrismdp
0
150
Separating Allocation from Code
chrismdp
1
470
Extreme Isolation Workshop
chrismdp
1
130
Who's code is it anyway?
chrismdp
0
100
Extreme Isolation (Lightning talk)
chrismdp
1
160
Other Decks in Technology
See All in Technology
.NET 10の概要
tomokusaba
0
100
チーリンについて
hirotomotaguchi
6
1.9k
RAG/Agent開発のアップデートまとめ
taka0709
0
170
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
re:Inventで気になったサービスを10分でいけるところまでお話しします
yama3133
1
120
文字列の並び順 / Unicode Collation
tmtms
3
570
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
2.9k
ログ管理の新たな可能性?CloudWatchの新機能をご紹介
ikumi_ono
1
680
re:Invent2025 コンテナ系アップデート振り返り(+CloudWatchログのアップデート紹介)
masukawa
0
360
30分であなたをOmniのファンにしてみせます~分析画面のクリック操作をそのままコード化できるAI-ReadyなBIツール~
sagara
0
130
Microsoft Agent 365 についてゆっくりじっくり理解する!
skmkzyk
0
250
Edge AI Performance on Zephyr Pico vs. Pico 2
iotengineer22
0
140
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.8k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
1.6k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
100
Building an army of robots
kneath
306
46k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Balancing Empowerment & Direction
lara
5
800
GitHub's CSS Performance
jonrohan
1032
470k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
The Pragmatic Product Professional
lauravandoore
37
7.1k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.3k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.5k
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