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
chrismdp
February 22, 2012
Technology
2
630
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
63
5 ways I screwed up Sol Trader's launch
chrismdp
0
160
Pathfinding Peril SPA 2016
chrismdp
0
170
Pathfinding Peril - BCS 2014
chrismdp
0
120
Separating allocation from code - NDC
chrismdp
0
140
Separating Allocation from Code
chrismdp
1
340
Extreme Isolation Workshop
chrismdp
1
110
Who's code is it anyway?
chrismdp
0
88
Extreme Isolation (Lightning talk)
chrismdp
1
150
Other Decks in Technology
See All in Technology
複雑なState管理からの脱却
sansantech
PRO
1
160
OS 標準のデザインシステムを超えて - より柔軟な Flutter テーマ管理 | FlutterKaigi 2024
ronnnnn
1
300
AWS Lambda のトラブルシュートをしていて思うこと
kazzpapa3
2
190
【令和最新版】AWS Direct Connectと愉快なGWたちのおさらい
minorun365
PRO
5
770
Application Development WG Intro at AppDeveloperCon
salaboy
0
200
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
120
B2B SaaSから見た最近のC#/.NETの進化
sansantech
PRO
0
920
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
2
480
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
0
110
Introduction to Works of ML Engineer in LY Corporation
lycorp_recruit_jp
0
140
TypeScriptの次なる大進化なるか!? 条件型を返り値とする関数の型推論
uhyo
2
1.7k
ドメインの本質を掴む / Get the essence of the domain
sinsoku
2
160
Featured
See All Featured
A Modern Web Designer's Workflow
chriscoyier
693
190k
No one is an island. Learnings from fostering a developers community.
thoeni
19
3k
4 Signs Your Business is Dying
shpigford
180
21k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
A better future with KSS
kneath
238
17k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
A Tale of Four Properties
chriscoyier
156
23k
RailsConf 2023
tenderlove
29
900
Code Reviewing Like a Champion
maltzj
520
39k
Optimising Largest Contentful Paint
csswizardry
33
2.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
329
21k
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