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)> なし
な感じでしたが、「環境や実行するコードによって変わる」ということを押さえた上で何かの参考になれば ;-)