# 📊 性能測定 Pingclair は nginx と Caddy と同一ホスト上で測定しています。各候補は 2 CPU に制限したコンテナで動作し、ワーカー数と 1 KiB のペイロードも同一です。リバースプロキシのバックエンドは同じ Docker ネットワーク上の別コンテナで、負荷生成ツールはネイティブで実行します。 ## 📊 結果 各値は 3 回の交互実行(各 50,000 リクエスト)の中央値です。すべてのリクエストが成功した行だけを集計しています。 | シナリオ | Pingclair | nginx 1.31.6 | Caddy 2.11.4 | | --- | ---: | ---: | ---: | | HTTP/1.1 静的 | 46,125 | 39,478 | 18,266 | | HTTPS/1.1 静的 | 40,721 | 31,508 | 19,978 | | HTTP/2 静的 | 92,369 | 41,972 | 17,424 | | HTTP/3 静的 | 56,180 | 55,638 | 22,912 | | HTTP/1.1 リバースプロキシ | 20,856 | 22,584 | 17,117 | | HTTPS/1.1 リバースプロキシ | 20,297 | 21,944 | 16,660 | | HTTP/2 リバースプロキシ | 23,181 | 20,396 | 未完了 | | HTTP/3 リバースプロキシ | 28,078 | 22,213 | 未完了 | 単位は 1 秒あたりのリクエスト数です。nginx と比べると、静的配信では HTTP/1.1、HTTPS/1.1、HTTP/2 で Pingclair が先行し(それぞれ 1.2 倍、1.3 倍、2.2 倍)、HTTP/3 はほぼ同等です。リバースプロキシでは HTTP/2 が 14%、HTTP/3 が 26% 先行し、HTTP/1.1 と HTTPS/1.1 は nginx に約 8% 劣っています。 ## 📐 この数字を制限する条件 - **ホストはノート PC です。** 測定は Apple M2 と OrbStack 上で行いました。絶対スループットは容量の主張ではなく、比率もこの統制された負荷における相対性能を述べたものです。 - **行の比較は同一プロトコル内に限ります。** HTTP/3 は他の行と異なる負荷生成ツールを使うため、絶対スループットをプロトコル間で比較せず、同一行内でサーバー間を比較してください。 - **未完了のセルは比較ではありません。** このホストとこの測定系では、Caddy はリバースプロキシの HTTP/2 と HTTP/3 の行を完了できませんでした。試験した同時実行数で上流接続の生成が頻発し、コンテナが使える一時ポートを使い切ったためです。これらのセルは、別の負荷で測った数字ではなく「未完了」として記載します。 - **結果はホストに依存します。** サーバー間の相対順位は CPU アーキテクチャ、カーネル、ワーカー数、TLS 実装によって変わります。 ## 🧾 出典 方法論、設定ファイル、負荷生成ツール、完全な結果表はサーバーリポジトリにあります。 - [測定方法](https://github.com/dorianverlaine/pingclair/blob/main/benchmarks/README.md) - [現在の結果セクション](https://github.com/dorianverlaine/pingclair#-benchmarks) 生の実行証跡はメンテナーがローカルに保管しており、意図的に公開していません。