それぞれベンチをとってみた。画像のサイズは29735 bytes。いずれもlighttpd。
ab -n 500 http://localhost:3001/image/121/view/scaled_image
ab -n 500 http://localhost:3001/static/scaled_image.jpg
ab -n 500 http://localhost:3001/files/scaled_image.jpg
上から
1, DBICで Catalyst の Chained で DBIC->find したrowから画像blobを取得してres->bodyに出力。
2, 普通ファイル
3, X-Sendfile
結果は
1, Time taken for tests: 8.706 seconds
2, Time taken for tests: 0.200 seconds
3, Time taken for tests: 5.542 seconds
おしまい。
Catalystを通すだけで、かなりコストかかる。
大量のサムネイルみたいなのにも認証が必要であれば
pop before smtpみたいに、Catalystに認証来たらそのIPからは一定時間のみ/static以下の指定ディレクトリにリクエスト許可、みたいなのがあったら速いかな。
Class::C3::XS期待。