Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Web Application Framework 初夏のベンチマーク祭

Web Application Framework 初夏のベンチマーク祭

新卒技術勉強会で発表した資料

Avatar for Pine Mizune

Pine Mizune

July 07, 2015
Tweet

More Decks by Pine Mizune

Other Decks in Programming

Transcript

  1. フレームワーク紹介  Ruby on Rails  Sinatra  Amethyst 

    Amon2  Flask  Express Perl Ruby  Revel Go Python Crystal JS
  2. ベンチマークの取り方 計測方法 計測値  単純リクエスト  配列演算処理  レスポンス時間 

    秒間リクエスト数 ※ 参照: 計測には wrk を使用 https://github.com/wg/wrk
  3. [ベンチマーク詳細] 単純リクエスト • GET で以下の JSON を返す { “ok”: true,

    “langugage”: “言語名”, “framework”: “フレームワーク名”, “time”: UNIX time, }
  4. ベンチマーク補足 • 処理系のバージョン – 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
  5. [ベンチマーク結果] 単純リクエスト (レスポンス時間) 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)
  6. [ベンチマーク結果] 単純リクエスト (秒間リクエスト数) 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 (回)
  7. [ベンチマーク結果] 配列演算処理 (レスポンス時間) 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)
  8. [ベンチマーク結果] 配列演算処理 (秒間リクエスト数) 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 (回)