PhalconとHHVMとでベンチマークでとったら最速なんじゃないかと思って試してみたら、思ったとおりにHHVMでパフォーマンスが出なかった。
というか、Laravelは動作を確認したけど、FuelPHPは404ページ、Phalconにいたっては起動のタイミングでExtensionが読み込まれていないような挙動を示した。
計測条件
・OS t2.micro, Amazon Linux
・Web nginx version: nginx/1.6.2
・PHP 5.6.6 Zend Opcache v7.0.4-dev
・Unix Socket
・Hello.Worldベンチ(テンプレートパーサは各フレームワークでデフォルトのもの)
・HHVM or PHP-fpmで計測
計測結果
計測回数5回の平均、ウォームアップなし
abベンチで
ab -n 1000 -c 100 http://localhost/
Request/sec | |
---|---|
fpm+laravel5 | 92.93 |
fpm+fuelphp1.7 | 487.46 |
fpm+phalcon1.3 | 1733.73 |
hhvm+php | 2179 |
fpm+php | 4695 |
fpmでの動作結果は予想どおりというか、出回っているベンチマーク結果と酷似しています。
問題は次から。
HHVM上でfuelphpとphalconは動作させられませんでしたが、laravelはスコアが半分になりました。
念のため、素のPHPでHHVMとPHP-fpmを比較してみましたが、laravelの結果と同様、PHP-fpmの方が2倍スコアが高いです。
HHVMのチューニングに問題があるのか、ZITコンパイラの結果をキャッシュできてないのか、
OSとの相性なのか、原因はよくわかっていないですが、
HHVMとフレームワークでベンチマークをとったというのをまだあまり聞いていないので、しばらく調べてみようと思います。
今回の検証に使ったconfをGistに上げました。
https://gist.github.com/ya-sasaki/78cfde744c1bb960f5e5