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

| フレームワーク | 1秒あたりのリクエスト | 相対的 | ピークメモリ | 相対的 |
|---|---|---|---|---|
| SILER-0.6 | 2,069.69 | 20.3 | 0.25 | 1.0 |
| Kumbia-1.0-dev | 1,753.60 | 17.2 | 0.29 | 1.2 |
| staticphp-0.9 | 1,665.28 | 16.3 | 0.27 | 1.1 |
| Phalcon-2.0 | 1,618.39 | 15.9 | 0.26 | 1.1 |
| TIPSY-0.10 | 1,376.97 | 13.5 | 0.32 | 1.3 |
| Fatfree-3.5 | 965.16 | 9.5 | 0.41 | 1.7 |
| CI-3.0 | 753.09 | 7.4 | 0.42 | 1.7 |
| Nofuss-1.2 | 667.24 | 6.5 | 0.40 | 1.6 |
| Slim-3.0 | 550.43 | 5.4 | 0.61 | 2.5 |
| ベア-1.0 | 502.52 | 4.9 | 0.73 | 3.0 |
| ルーメン-5.1 | 415.57 | 4.1 | 0.85 | 3.5 |
| yii-2.0 | 410.08 | 4.0 | 1.32 | 5.4 |
| ZE-1.0 | 403.34 | 4.0 | 0.75 | 3.1 |
| Cygnite-1.3 | 369.12 | 3.6 | 0.71 | 2.9 |
| 燃料-1.8 | 344.26 | 3.4 | 0.63 | 2.6 |
| Silex-2.0 | 342.81 | 3.4 | 0.78 | 3.2 |
| phpixie-3.2 | 267.24 | 2.6 | 1.25 | 5.1 |
| オーラ-2.0 | 233.54 | 2.3 | 0.88 | 3.6 |
| ケーキ-3.2 | 174.91 | 1.7 | 1.95 | 7.9 |
| ZF-3.0 | 133.87 | 1.3 | 2.24 | 9.1 |
| Symfony-3.0 | 131.50 | 1.3 | 2.18 | 8.9 |
| Laravel-5.3 | 101.94 | 1.0 | 2.83 | 11.5 |
注(1):すべての結果は、 phalcon.soおよびice.soでphpで実行されます。 Phalcon.soまたはIce.soをロードしない場合、PhalconまたはIceを除くRPSはおそらく少し増加します。
注(2):このベンチマークは、 abパフォーマンスによって制限されています。 #62を参照してください。
PhalconのようなPHP拡張フレームワークをベンチマークする場合は、拡張機能をインストールする必要があります。
ソースコードをhttp:// localhost/php-framework-benchmark/:
$ git clone https://github.com/kenjis/php-framework-benchmark.git
$ cd php-framework-benchmark
$ bash setup.sh
ベンチマークの実行:
$ bash benchmark.sh
http:// localhost/php-framework-benchmark/を参照してください。
いくつかのフレームワークをベンチマークしたい場合:
$ bash setup.sh fatfree-3.5/ slim-3.0/ lumen-5.1/ silex-1.3/
$ bash benchmark.sh fatfree-3.5/ slim-3.0/ lumen-5.1/ silex-1.3/
/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を実行します。
<VirtualHost *:80>
DocumentRoot /home/vagrant/public
</VirtualHost>