読者です 読者をやめる 読者になる 読者になる

MacにeAcceleratorをインストールする

PHP

PHPを使っていると、どうしてもPEARを使いたくなるが、PEARをインクルードすると明らかに重くなる。これは多数のPHPファイルをバイトコードに変換するのに時間がかかるためだ。
そんな状況で有効なのが、PHPファイルをあらかじめバイトコードに変換しておく、バイトコードキャッシュである。オープンソースのものでは、APCや、mmcacheとその後継であるeAcceleratorが有名だ。
今まで何度もAPCやeAcceleratorをMac OS Xにインストールしようと苦戦してきたが、コンパイルエラーやセグメント違反ばかり。だが、今回とうとうインストールに成功した。(オライリーの記事によると、特別な設定なくともコンパイル、インストールが通るようだが、僕の環境ではコンパイルできても、"Unable to load dynamic library"というエラーが出て正常に機能しなかった。)


今回インストールした環境は、Tiger 10.4.4(ppc), Apache2.2.0, php4.4.2。個人的には5.1.X系でインストールしたかったが、仕事で使っているのが、4.3.X、4.4.X系なので、リリースされたばかりの4.4.2を使用。
インストール方法は別に記載するとして、とりあえずベンチマーク結果と、感想を。
テストしたコードは次のものだ。

<?php
require_once "HTML/QuickForm.php";
$f = new HTML_QuickForm('f');

$f->addElement('text', 'txt', "Enter some text");
$f->addElement('submit', 'btn', 'Submit');

print $f->display();
?>

abコマンドで平行度10リクエスト数1000回で秒間あたりのリクエスト処理数を測定して結果は、以下の通り。


eAcceleratorなし
Requests per second: 16.79 [#/sec] (mean)

eAccelerator有効
Requests per second: 49.88 [#/sec] (mean)


およそ2.7倍か。正直、もうすこし効果があるのかと思っていたが。Zend社の製品はもっと高性能なのだろうか?
ともあれ、これからいろいろ試してみよう。