なんとなく気になったので、軽く手元で試した。
ので、ついでに書いておく。
なぜ比較したのか
前者の場合、読みだしたHTMLの加工もできるので、エッジベースのアーキテクチャを考えるにあたってそれを検討したかった。
もちろんその動的な処理をする分だけパフォーマンスは落ちるはずやけど、その前処理である単に静的なコンテンツを返すだけの部分でも、実は有意な差があったりせんかな?と。
というわけで用意したのがこのリポジトリ。
GitHub - leader22/perf-cloudflare-workers-sites-vs-cloudflare-pages
- Workers: Workers Sitesのテンプレを使ってデプロイ
- Pages: そのままGitで連携してデプロイ
そしてそれぞれに、`autocannon`でリクエストしてみた。おそらくどっちも日本・東京のエッジで処理されたはず。
結果
リポジトリのREADMEにあるやつを抜粋して並べると、こう。
Workersの結果。
┌─────────┬───────┬───────┬───────┬───────┬──────────┬──────────┬─────────┐ │ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │ ├─────────┼───────┼───────┼───────┼───────┼──────────┼──────────┼─────────┤ │ Latency │ 26 ms │ 33 ms │ 57 ms │ 71 ms │ 39.08 ms │ 59.56 ms │ 1141 ms │ └─────────┴───────┴───────┴───────┴───────┴──────────┴──────────┴─────────┘
Pagesの結果。
┌─────────┬───────┬───────┬───────┬───────┬──────────┬──────────┬────────┐ │ Stat │ 2.5% │ 50% │ 97.5% │ 99% │ Avg │ Stdev │ Max │ ├─────────┼───────┼───────┼───────┼───────┼──────────┼──────────┼────────┤ │ Latency │ 24 ms │ 32 ms │ 58 ms │ 78 ms │ 35.24 ms │ 20.78 ms │ 664 ms │ └─────────┴───────┴───────┴───────┴───────┴──────────┴──────────┴────────┘
というわけで、
- Workesが思ってたよりも速い
- ただしなんかムラっけがありそう
- 平均ではやはりPagesのほうが速いし安定感ある
Workersってほんと速いんやな・・ってことが改めてわかったので、個人的には満足だった。
ただしPagesからAPIが使えるようになった今、Workers Sitesでがんばる道は本当にあるのだろうか・・・って気持ちはある 😇