[PHP-users 11507] Re: APCとPHP Accelerator で速度テストしてみたんですが。

Youichi Iwakiri php-users@php.gr.jp
Thu, 14 Nov 2002 17:25:02 +0900


いわきりです

Masaaki Kikuzawa wrote in <20021114163808.881D.KIKUZAWA@coo-co-ltd.co.jp> :
>> >CGI版PHP       >モジュール版PHP  >phpA           >APCmmap        >APCshm
>> >1回目  6.340秒 >1回目  7.174秒   >1回目  7.177秒 >1回目  3.877秒 >1回目  4.143秒
>> >2回目  6.319秒 >2回目  7.170秒   >2回目  1.555秒 >2回目  3.158秒 >2回目  3.459秒
>> >3回目  6.318秒 >3回目  7.177秒   >3回目  1.549秒 >3回目  3.199秒 >3回目  3.441秒
>・APCでは、
>    最初の一回の実行が二回目以降に較べると若干遅い。
>    しかし、phpAのようにキャッシュなしと同等ほどに遅くない。
>ちょっと考察してみます。
>条件:
>私の提示したスクリプトapc.phpを使っての結果と考える。
>メインループでは、
>for($i = 0; $i < 10; $i++) {
>  include("apc.inc");
>}
>というように、なってます。

失礼、こっちをちゃんと読んでませんでした。

>仮説:
>APCでは、
>  最初のincludeで、apc.incのPHPの中間コードキャッシュを作成する。

仮説ではなく、その通りの動作をしていますよ。APCは :)
include/requireの度にcompilerが呼び出され、compilerが中間コードを
返す際にキャッシュしています。
次回以降は、キャッシュにヒットするので、中間コードを返すだけです。

>phpAでは、
>  apc.php実行後に、apc.incのPHPの中間コードキャッシュを作成する。
>仮説を基に考察:
>APCでは、最初のループのincludeでapc.iniのキャッシュを作っているので、
>残り9回分は、キャッシュから読むので速くなっている。
>だから、apc.phpの1回目の実行が2回目以降に較べて若干遅くなる。
>phpAでは、実行中には、apc.iniのキャッシュを作らず、実行後、キャッシュ
>を作成する。だから、apc.phpの1回目の実行はキャッシュなしと同等に
>なってしまう。
>こんな感じでどうでしょうか?

PHP Acceleratorもsourceを公開して欲しいですよね。
どんな処理しているか興味あるんですけど。

#未だにFreeBSD-3.4-RELEASEなのでPHPAは試せずにいます。

-- 
Youichi Iwakiri