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
890
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
580
Perl 卒業式
pine
0
380
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
How I Won Prize Money at a Hackathon Using Codex and Symphony Alpha
yasei_no_otoko
0
120
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
480
Go を使い始めて 2 ヶ月の学び / My first two months with Go
contour_gara
0
370
Japan Community Day at Kubecon + CloudNativeCon Japan 2026: Learning Container Privilege Control by Building My Own Low-Level Container Runtime
ternbusty
1
170
Gmail/Google DriveをトリガーにAIエージェントを動かそう! / Run AI agents with Gmail/Google Drive as triggers!
har1101
2
440
AWS DevOps AgentのAzure接続機能を検証して見えた活用法/Use Cases Verified for the AWS DevOps Agent's Azure Connectivity Feature
masakiokuda
1
270
Go 1.27 における memory allocation の高速化
andpad
0
310
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
240
Loosening the Reins: Go Generics Get More Flexible
kuro_kurorrr
0
310
仕様駆動開発へのトライを機に チームに適合する手法を模索し続けている話
freee
PRO
0
600
不幸な GC
chencmd
0
720
自動化したのに回らない テスト運用の壁―AI時代の品質責任と生産性
mfunaki
0
450
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
470
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.8k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
280
A Modern Web Designer's Workflow
chriscoyier
698
190k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.7k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
1.9k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
350
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
280
Become a Pro
speakerdeck
PRO
31
6.2k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
500
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
380
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!