🧊

Cloudflare Workers Sitesと、Cloudflare Pagesのパフォーマンス比較

なんとなく気になったので、軽く手元で試した。

ので、ついでに書いておく。


なぜ比較したのか

  • Workers Sites: Workerでリクエストを受けて、KVからキャッシュを読み出して返す
  • Pages: CDNそのままに静的なコンテンツを返す

前者の場合、読みだした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でがんばる道は本当にあるのだろうか・・・って気持ちはある 😇

Cloudflare Pages Goes Full Stack