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
Rubinius Euruko 2012 Lightning talk
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Dirkjan Bussink
June 01, 2012
Programming
260
2
Share
Rubinius Euruko 2012 Lightning talk
A short story about optimizing Rubinius for a web application
Dirkjan Bussink
June 01, 2012
More Decks by Dirkjan Bussink
See All by Dirkjan Bussink
Managing a widely distributed team
dbussink
1
200
Time
dbussink
0
140
The tricky truth about parallel execution and modern hardware
dbussink
0
380
The future of Ruby is faster
dbussink
3
560
Security for dummies
dbussink
1
200
The myth of dynamic language performance
dbussink
3
500
Rubinius - Tales from the trenches @ Railsclub.ru 2012
dbussink
2
230
Rubinius - Tales from the trenches @ Baruco 2012
dbussink
1
290
Rubinius Eurucamp 2012 Workshop
dbussink
2
150
Other Decks in Programming
See All in Programming
iOS26時代の新規アプリ開発
yuukiw00w
0
220
タクシーアプリ『GO』の バックエンド開発のおける AI利活用と若者のすべて
pyama86
3
1.8k
Spec-Driven Development with AI-Agents: From High-Level Requirements to Working Software
antonarhipov
2
400
TypeScriptだけでAIエージェントを作る フロント・エージェント・インフラのフルスタック実践
har1101
6
1.2k
AIチームを指揮するOSS「TAKT」活用術 / How to Use “TAKT,” an OSS Tool for Orchestrating AI Teams
nrslib
6
760
SPMマルチモジュールで テストカバレッジを取得する技法
yosshi4486
0
130
色即是空、空即是色、データサイエンス
kamoneggi
1
250
Lemonade + Foundry Toolkit でお手軽アプリ開発
seosoft
1
250
Technical Debt: Understanding it Rightly, Engaging it Rightly #LaravelLiveJP
shogogg
0
180
Transactional Change Stream Processing With Debezium and Apache Flink
gunnarmorling
1
140
Swiftのレキシカルスコープ管理
kntkymt
0
210
関係性から理解する"同一性"の型用語たち
pvcresin
2
620
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Building an army of robots
kneath
306
46k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Git: the NoSQL Database
bkeepers
PRO
432
67k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
580
Everyday Curiosity
cassininazir
0
220
Transcript
Rubinius Use Ruby
Dirkjan Bussink
[email protected]
20 reqs/s 750 reqs/s
Disclaimer All these numbers are just relative for this specific
test app on Rubinius. They cannot just be extrapolated to your application DO try this at home!
None
0 10 20 30 40 10 20 30 40 50
60 70 80 90 100 requests / second Concurrent clients Requests
0 7.5 15 22.5 30 50 100 150 200 250
300 350 400 450 500 requests / second Concurrent clients Requests
None
None
class Hash def find_item(key) key_hash = key.hash ... end end
0 15 30 45 60 10 20 30 40 50
60 70 80 90 100 requests / second Concurrent clients Requests
0 7.5 15 22.5 30 50 100 150 200 250
300 350 400 450 500 requests / second Concurrent clients Requests
None
None
bool ObjectMemory::refill_slab(STATE, gc::Slab& slab) { SYNC(state); Address addr = young_->allocate_for_slab(slab_size_);
... }
0 75 150 225 300 10 20 30 40 50
60 70 80 90 100 requests / second Concurrent clients Requests
0 200 400 600 800 50 100 150 200 250
300 350 400 450 500 requests / second Concurrent clients Requests
0 200 400 600 800 50 100 150 200 250
300 350 400 450 500 requests / second Concurrent clients Requests Before 2 Before 1
None