私はよくマイクロとルーターを使用しているので、ベンチマークをすることにしました。このベンチマークは、(@kenjis)PHPフレームワークベンチマークに感謝します。私はABをAWKに変更し、テーブル「フレームワークのタイプ」などに追加しました...
!ヘルプ付きのベンチマークwrk https://github.com/wg/wrk
このプロジェクトは、現実の世界でのPHPフレームワークの最小オーバーヘッド(最小ブートストラップコスト)を測定しようとします。
したがって、ベンチマークへの最小アプリケーションには以下を含めるべきではないと思います。
このプロジェクトでは、テンプレートエンジンやORM/データベースライブラリなどのコンポーネントが範囲外です。
これはmasterブランチです。
--optimize-autoloaderのように、通常の生産環境で通常行う最適化を実行します。一部の人々は、デフォルトの構成を使用することは公平ではないと考えるかもしれません。しかし、フレームワークのデフォルト構成は、それが何であるかの主張だと思います。デフォルトの構成は、フレームワークを知るための良い出発点です。そして、すべてのフレームワークを最適化することはできません。一部のフレームワークは最適化されており、一部は公平ではありません。そのため、コンポーネント/構成は削除されません。
ただし、最適化(使用されていないコンポーネント/構成の削除)でベンチマークに興味がある場合は、最適化ブランチを参照してください。
私のコードに何か問題がある場合は、Pullリクエストをお気軽に送信してください。ただし、「Hello World!」のみで最適化することに注意してください。受け入れられません。最速の「Hello World!」アプリケーションはこのプロジェクトの目標ではありません。
これらは私のベンチマークであり、あなたのベンチマークではありません。 (生産相当)環境で実行することをお勧めします。 (2019/01/27)
チャートを表示します



Centos 7.6私のサーバー
| フレームワーク | 1秒あたりのリクエスト | 相対的 | ピークメモリ | 相対的 | ファイル | タイプ |
|---|---|---|---|---|---|---|
| フレームワークなし | 11,742.54 | 19.7 | 0.41 | 1.0 | 1 | フレームワークなし |
| Altorouter | 3,619.92 | 6.1 | 0.50 | 1.2 | 6 | ルーター |
| PHPルーター | 3,358.57 | 5.6 | 0.52 | 1.3 | 8 | ルーター |
| fastroute | 2,463.59 | 4.1 | 0.55 | 1.3 | 15 | ルーター |
| フライト | 1,660.40 | 2.8 | 0.68 | 1.6 | 15 | マイクロ |
| ほろ酔い | 1,617.18 | 2.7 | 0.66 | 1.6 | 16 | マイクロ |
| リモナード | 1,439.16 | 2.4 | 1.02 | 2.5 | 6 | マイクロ |
| Siler-1.3 | 1,397.18 | 2.3 | 0.88 | 2.1 | 22 | マイクロ |
| Klein.php | 1,271.65 | 2.1 | 0.78 | 1.9 | 20 | ルーター |
| ベアフレームワーク | 1,065.35 | 1.8 | 0.94 | 2.3 | 22 | マイクロ |
| fatfree | 1,049.13 | 1.8 | 1.50 | 3.6 | 6 | マイクロ |
| Slim-3.x | 595.05 | 1.0 | 1.39 | 3.4 | 56 | マイクロ |
MacOS Mojave 10.14.2私のデスクトップ
| フレームワーク | 1秒あたりのリクエスト | 相対的 | ピークメモリ | 相対的 | ファイル | タイプ |
|---|---|---|---|---|---|---|
| フレームワークなし | 4,573.15 | 7.2 | 0.37 | 1.0 | 1 | フレームワークなし |
| Altorouter | 2,617.56 | 4.1 | 0.47 | 1.3 | 6 | ルーター |
| PHPルーター | 2,417.23 | 3.8 | 0.47 | 1.3 | 8 | ルーター |
| fastroute | 1,947.44 | 3.1 | 0.51 | 1.4 | 15 | ルーター |
| フライト | 1,545.02 | 2.4 | 0.63 | 1.7 | 15 | マイクロ |
| ほろ酔い | 1,410.26 | 2.2 | 0.61 | 1.6 | 16 | マイクロ |
| Siler-1.3 | 1,330.79 | 2.1 | 0.77 | 2.1 | 22 | マイクロ |
| Klein.php | 1,246.66 | 2.0 | 0.74 | 2.0 | 20 | ルーター |
| リモナード | 1,193.01 | 1.9 | 1.00 | 2.7 | 6 | マイクロ |
| ベアフレームワーク | 1,108.75 | 1.8 | 0.90 | 2.4 | 22 | マイクロ |
| fatfree | 1,062.73 | 1.7 | 1.44 | 3.9 | 6 | マイクロ |
| Slim-3.x | 631.79 | 1.0 | 1.31 | 3.5 | 56 | マイクロ |
注(1):このベンチマークは、 wrk https://github.com/wg/wrkパフォーマンスによって制限されています。
ソースコードをhttp:// localhost/php-micro-router-framework-benchmark/:
$ git clone https://github.com/dejurin/php-micro-router-framework-benchmark.git
$ cd php-micro-router-framework-benchmark
$ bash setup.sh
ベンチマークの実行:
$ bash benchmark.sh
http:// localhost/php-micro-router-framework-benchmark/を参照してください。
いくつかのフレームワークをベンチマークしたい場合:
$ bash setup.sh PHP-Router/ flight/ lumen/
$ bash benchmark.sh PHP-Router/ flight/ lumen/
/etc/sysctl.confに以下に追加しました
# Added
net.netfilter.nf_conntrack_max = 100000
net.nf_conntrack_max = 100000
net.ipv4.tcp_max_tw_buckets = 180000
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 10
sudo sysctl -pを実行します。
現在の構成を確認したい場合は、 sudo sysctl -aを実行します。