eAcceleratorとAPCのパフォーマンス比較
id:koyhogeさんからのリクエスト(^^;で、比較してみました。
実行したコードは、以前Sebastian Bergmann氏がコンパイラとコンパイラオプションの違いによるパフォーマンス比較を行った際に使った(と言っている)コードで、cvs.php.netにあります。
テストした環境は以下の通りです。
- CPU:Pentium4 3.0GHz/Mem:1GB
 - CentOS4.4
 - Apache 2.2.4(src)
 - PHP 5.2.1(src)
 - APC 3.0.14(extension)
 - eAccelerator 0.9.5+5.2.1用パッチ(extension。zend_extensionではない)
 - Apache再起動後、Firefoxから上記PHPコードを実行
 
今回の結果は次のような感じです。ちょっとグラフが見づらくてスミマセン。やはり「得手/不得手」があるみたいです。

以下、生データです。
| none | ea(optimize=0) | ea(optimize=1) | apc | |
|---|---|---|---|---|
| simple | 0.591 | 0.603 | 0.390 | 0.553 | 
| simplecall | 1.475 | 1.675 | 1.417 | 1.467 | 
| simpleucall | 2.600 | 2.709 | 2.106 | 2.293 | 
| simpleudcall | 2.676 | 2.616 | 2.450 | 2.692 | 
| mandel | 2.156 | 1.971 | 1.868 | 1.935 | 
| mandel2 | 3.649 | 3.187 | 2.964 | 3.087 | 
| ackermann(7) | 3.980 | 2.869 | 2.971 | 2.782 | 
| ary(50000) | 0.147 | 0.145 | 0.144 | 0.143 | 
| ary2(50000) | 0.133 | 0.132 | 0.129 | 0.128 | 
| ary3(2000) | 1.113 | 1.132 | 1.133 | 1.082 | 
| fibo(30) | 7.706 | 7.779 | 7.629 | 7.119 | 
| hash1(50000) | 0.275 | 0.278 | 0.255 | 0.263 | 
| hash2(500) | 0.268 | 0.289 | 0.257 | 0.274 | 
| heapsort(20000) | 0.808 | 0.747 | 0.682 | 0.705 | 
| matrix(20) | 0.562 | 0.554 | 0.518 | 0.533 | 
| nestedloop(12) | 1.093 | 1.017 | 0.723 | 0.976 | 
| sieve(30) | 0.776 | 0.651 | 0.638 | 0.627 | 
| strcat(200000) | 0.107 | 0.116 | 0.111 | 0.109 | 
| total | 30.118 | 28.471 | 26.385 | 26.769 | 
今回の結果からすると、
eAccelerator(optimize=1)> APC > eAccelerator(optimize=0)> なし
な感じでしたが、「環境や実行するコードによって変わる」ということを押さえた上で何かの参考になれば ;-)