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
Web Application Framework 初夏のベンチマーク祭
Search
Pine Mizune
July 07, 2015
Programming
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Web Application Framework 初夏のベンチマーク祭
新卒技術勉強会で発表した資料
Pine Mizune
July 07, 2015
More Decks by Pine Mizune
See All by Pine Mizune
多言語対応と絵文字ジェネレーター / i18n of Emoji Generator
pine
0
880
C++ 製グラフィックライブラリ Skia の紹介 / Introduction to the graphics library Skia written by C++
pine
0
2k
asyncio + aiohttp で作るウェブサービス / How to develop a web service with asyncio and aiohttp
pine
0
700
Lerna による明示的疎結合アーキテクチャ
pine
1
680
CircleCI 2.0 x JavaScript
pine
3
570
Perl 卒業式
pine
0
370
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
530
Emoji Generator meets Browser Extensions
pine
1
3k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.5k
Other Decks in Programming
See All in Programming
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
120
Apache Hive: Toward a Cloud Native Lakehouse
okumin
0
160
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
180
使用 Meilisearch 建立新聞搜尋工具
johnroyer
0
170
霧の中の代数的エフェクト
funnyycat
1
430
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
130
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
8
15k
AI時代、エンジニアはどう育つのか -未経験エンジニアの成長を間近で見て考えたこと-
thasu0123
0
150
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
170
GDG Korea Android: 2026 I/O Extended ~ What's new in Android development tools
pluu
0
150
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
240
Featured
See All Featured
The SEO identity crisis: Don't let AI make you average
varn
0
520
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
Making Projects Easy
brettharned
120
6.7k
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
640
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2.1k
The untapped power of vector embeddings
frankvandijk
2
1.8k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.8k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
It's Worth the Effort
3n
188
29k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.8k
Transcript
Web Application Framework 初夏のベンチマーク祭 水音氷音
目次 • 目的 • フレームワーク 紹介 • ベンチマーク 取り方 •
ベンチマーク 結果発表 • 考察・まとめ
ベンチマークの目的 Crystal が本当に早いのか知りたい 目的 手段 • 複数言語・フレームワークの速度を計測 • 結果を元に Crystal
の速度を相対的に比較
フレームワーク紹介 Ruby on Rails Sinatra Amethyst
Amon2 Flask Express Perl Ruby Revel Go Python Crystal JS
ベンチマークの取り方 計測方法 計測値 単純リクエスト 配列演算処理 レスポンス時間
秒間リクエスト数 ※ 参照: 計測には wrk を使用 https://github.com/wg/wrk
[ベンチマーク詳細] 単純リクエスト • GET で以下の JSON を返す { “ok”: true,
“langugage”: “言語名”, “framework”: “フレームワーク名”, “time”: UNIX time, }
[ベンチマーク詳細] 配列演算処理 • 素数の計算 – 100,000 以下の素数をすべて求める • エラトステネスの篩 –
計算量 O(N log log N) • 配列へのランダムアクセス 多様
ベンチマーク補足 • 処理系のバージョン – Crystal v0.7.4 – Go 1.4 –
Node v0.12.5 – Perl 5.22.0 – Ruby 2.2.2 – Python 2.7.10 / 3.4.3 • フレームワークバージョン – 7月5日時点での 最新安定版 • 測定条件 – rookies 同一 VPS 内 – wrk 2 threads / 10 connections – Production / Release ENV で測定 – 高速化 チューニング無し • 計測コード – GitHub 上ですべて公開 https://github.com/pine613/wa f_benchmark
[ベンチマーク結果] 単純リクエスト (レスポンス時間) Crystal/ Amethyst Go/ Revel Perl/ Amon2 Node/
Express Python/ Flask Ruby/ Sinatra Ruby/ Rails Latency (ms) 0.57 1.44 2.93 5.15 10.10 43.72 47.99 0.00 10.00 20.00 30.00 40.00 50.00 60.00 Latency (ms)
[ベンチマーク結果] 単純リクエスト (秒間リクエスト数) Crystal/ Amethyst Go/ Revel Perl/ Amon2 Node/
Express Ruby/ Sinatra Ruby/ Rails Python/ Flask Req / Sec 19552.00 7010.00 3588.00 1977.00 985.00 228.00 208.00 0.00 5000.00 10000.00 15000.00 20000.00 25000.00 Request / Sec (回)
[ベンチマーク結果] 配列演算処理 (レスポンス時間) Crystal/ Amethyst Go/ Revel Node/ Express Perl/
Amon2 Ruby/ Sinatra Python/ Flask Ruby/ Rails Latency (ms) 5.90 6.09 13.73 141.42 222.00 245.38 258.99 0.00 50.00 100.00 150.00 200.00 250.00 300.00 Latency (ms)
[ベンチマーク結果] 配列演算処理 (秒間リクエスト数) Crystal/ Amethyst Go/ Revel Node/ Express Perl/
Amon2 Ruby/ Rails Ruby/ Sinatra Python/ Flask Req / Sec 1692.00 1639.00 727.00 67.00 44.00 40.00 38.00 0.00 200.00 400.00 600.00 800.00 1000.00 1200.00 1400.00 1600.00 1800.00 Request / Sec (回)
考察・まとめ • Crystal は本当に早かった – Ruby 界に革命をもたらす速度 • さらに詳しいベンチマークが必要 –
ミドルウェアとの組み合わせ etc • Crystalの未来は明るい
Fin. Let’s enjoy your Crystal life!