Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

eAccelerator/APC/xcacheのパフォーマンス比較再び


先日比較してみましたが、使っていたPHPがdebug buildだったので、non debug buildで改めてやってみました。ついでに、ZendOptimizer 3.2.6と組み合わせた場合も計測してみました。
で、結果ですが、総実行時間(Total)だけ掲載しています。eAccelerator、Xcacheはzend_extensionとしてもロードできるので、zend_extensionと通常のextentionの場合の比較もしています。

Total
none(ZendOpt) 106%
ea(opt=0, zend_extension) 104%
ea(opt=0, extension) 115%
ea(opt=0, zend_ext, ZendOpt) 117%
ea(opt=0, ext, ZendOpt) 102%
ea(opt=1, zend_extension) 94%
ea(opt=1, extension) 96%
ea(opt=1, ext, ZendOpt) 106%
ea(opt=1, ext, ZendOpt) 98%
apc 105%
apc(ZendOpt) 96%
xcache(zend_ext) 103%
xcache(ext) 103%
xcache(zend_ext, ZendOpt) 108%
xcache(ext, ZendOpt)*1 94%

今回の結果からすると、TOP3は

  1. eAccelerator(optimize=1,zend_extension)
  2. APC+ZendOptimizer
  3. eAccelerator(optimize=1,extension)

な感じでした。
PHP本体がだいぶチューニングされているせいか、ZendOptimizerを入れてもあまり効果が出ないですねぇ。ただし、表には出てませんが、単純なループ処理(simple)は最適化される(30%ぐらい改善)ようです。
なお、Xcache+ZendOptimizerの組み合わせも結果は良かったんですが、ベンチマークスクリプトを再読込するとApacheがsegfaultしてしまいました。スクリプトの内容にも依存するかも知れませんが、念のため、ランキングからは除外しています。もうちょっと安定すれば、意外と良い組み合わせかも知れません。
あと、実環境で使用する場合は、debug buildしないようにしましょう。3倍ぐらいパフォーマンスが違いますよ :-)
#zend_extensionも使えないし。。。

*1:再実行するとsegfault