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

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

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

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

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 (回)