Phalcon Adventカレンダー15日目のエントリです。Phalcon 1.3と2.0でどの程度性能差があるか簡単なベンチマークを取ってみました。
ベンチマーク環境
ローカルホストからabコマンドを実行し取得しました。システムは以下の通りです。
- OS : Fedora20 x86_64
- PHP/httpd : Fedora20 package
- CPU : Intel(R) Core(TM) i7-4770S CPU @ 3.10GHz
- MEM : 16GB
- HDD : INTEL SSDSC2BW240A4
利用したフレームワーク
- Laravel (比較用にcomposerでインストール)
- Phalcon 2.0 RPM
- Phalcon 1.3 RPM
PhalconのWebアプリはmicroとsimpleを利用しました。PhalconもLaravelもデフォルトのままです。
phalcon project phalconmicrotest --type=micro
phalcon project phalcontest --type=simple
composer global require "laravel/installer=~1.1" laravel new laraveltest
Laravelのトップページにはイメージが埋め込まれているので削除しました。
abコマンドを3回程度実行して真ん中の値を使用しました。
ab -c 10 -n 100000 http://localhost/path-to-app/public/
ベンチマーク結果
縦軸はリクエスト/秒です。
単純なハローワールド程度のベンチマークですが、この結果から判ることがあります。
- PhalconでもOpcacheは必ず利用する
- 簡単なWebサービスではMicroを利用すると高速にレスポンスを返せる
- Phalcon 1.3と2.0では性能的に大きな差はない
具体的なベンチマーク数値は以下の通りです。
w/o Opcache | w/ opcache | |
Laravel | 113.86 | 300.3 |
Phalcon 1.3 Simple | 4858.73 | 8939.18 |
Phalcon 2.0 Simple | 6516.04 | 8979.63 |
Phalcon 1.3 Micro | 5825.75 | 11369.95 |
Phalcon 2.0 Micro | 6516.04 | 12410.25 |
まとめ
もう少し本格的なベンチマークをしたかったのですが、時間の都合で無理でした。高速になればなるほどPHPスクリプト部分性能の影響が大きくなります。OpcacheはPhalconでも必須のモジュールと言えるでしょう。