Qiitaのあるタグがついた投稿一覧ページのページングの末尾まで飛ぶリンクをクリックした時に、レスポンスが明らかに遅い気がします。
体感的には、2〜3倍は遅い感じがします。
計測してみた
方法
とはいえ、なんとなく、遅いと言うのはただの言いがかりなので、どのくらい遅いのか計測をしてみました。
今回はページングのパラメーターを大きくしながら、リクエストを投げて計測します。
測定するメトリクスはTTFB(Time To First Byte)です。
TTFBの計測は以下のようにcurlコマンドを使って行いました。
curl <URL> -s -o /dev/null -w '%{time_starttransfer}\n'
結果
測定結果を箱ひげ図にしたグラフを以下に示します。
横軸はページングのパラメーター(そのまま表示させると、グラフの横幅が大きなってしまうので、幅15のビンを作成しています)
縦軸は、TTFB(Time To First Byte)です。
ページ番号300を境界にして、振る舞いが大きく変わっていることがわかります。
300番よりも若い番号をキャッシュするような実装なのでしょうか。
Incrementsの採用ページを見ると、RailsやAWSを使っていることが読み取れるので、おそらくキャッシュ用のミドルウェアはmemcachedかRedisでしょう。
おそらく、ソースコードのどこかに300というマジックナンバーがあるはずなので、それを600くらいにしてもいいのではないでしょうか?
これほど多くの投稿があるタグもそんなに多くないので、キャッシュサイズの増加の影響はそこまでないかと思います。
s/300/600
ちなみに、Qiita::Teamでは
Qiita::Teamでも同様のことを調べようとしたら、ページが重すぎて、502になってしまいました・・・