読者です 読者をやめる 読者になる 読者になる

レガシーコード生産ガイド

私に教えられることなら

expressのリクエスト処理数を改善する

今作っているシステムのベンチマークをabで取ってみた。 コマンドはこう

ab -t 10 -c 100 http://localhost:3000/

で、試したところ

Document Path:          /
Document Length:        16427 bytes

Requests per second:    0.07 [#/sec] (mean)
Time per request:       1510588.900 [ms] (mean)
Time per request:       15105.889 [ms] (mean, across all concurrent requests)
Transfer rate:          108.44 [Kbytes/sec] received

Requests per second 0.07?!遅すぎる! node.jsって早いんじゃなかったの?とangular-fullstackで生成したもので試すと

Document Path:          /
Document Length:        3041 bytes

Requests per second:    1426.27 [#/sec] (mean)
Time per request:       70.113 [ms] (mean)
Time per request:       0.701 [ms] (mean, across all concurrent requests)
Transfer rate:          4683.71 [Kbytes/sec] received

1426?!めちゃくちゃ速い! とりあえずjadeがキャッシュされてるはずなのに物凄く遅い、ということを突き止めて、静的にHTMLを生成しres.renderからres.sendfileに変えたところ

Document Path:          /
Document Length:        16423 bytes

Requests per second:    937.91 [#/sec] (mean)
Time per request:       106.620 [ms] (mean)
Time per request:       1.066 [ms] (mean, across all concurrent requests)
Transfer rate:          15617.84 [Kbytes/sec] received

937.91、やはりここがボトルネックだったみたいだ。 まだ処理数500ぐらい差があるけど、1リクエストにつき0.3msの差だから、セッションの処理とかになるのだろうか? app.useでミリ秒を出して計測したけど、1/10000秒の差はどうやって計測すればいいんだろう?

広告を非表示にする