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
870
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
690
Lerna による明示的疎結合アーキテクチャ
pine
1
680
CircleCI 2.0 x JavaScript
pine
3
570
Perl 卒業式
pine
0
370
Android Studio の気になる warnings を抑制する方法まとめ
pine
0
520
Emoji Generator meets Browser Extensions
pine
1
3k
近年の OSS 開発における CI 選択のベストプラクティス
pine
3
4.5k
Other Decks in Programming
See All in Programming
コンテキストの使い捨てをやめる — ビジネスルール駆動開発と miko —
ioki
0
210
Language Server 使ってる? 〜VSCode と Zed の場合〜 / Are you using a Language Server? ~For VS Code and Zed~
handlename
0
790
TAKTでAI駆動開発の品質を設計する
j5ik2o
7
1.4k
AIで効率化できた業務・日常
ochtum
0
140
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
120
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.7k
OSもどきOS
arkw
0
570
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
200
Creating Composable Callables in Contemporary C++
rollbear
0
150
jQueryをバージョンアップする前に使いたいjQuery Migrate
matsuo_atsushi
0
560
作って学ぶ、 JSX (TSX) ランタイムの基本
syumai
7
1.6k
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
11
4.3k
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
400
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
How to train your dragon (web standard)
notwaldorf
97
6.7k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.4k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.5k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
200
Unsuck your backbone
ammeep
672
58k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
370
Documentation Writing (for coders)
carmenintech
77
5.4k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Designing for humans not robots
tammielis
254
26k
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!