[PHP-users 11506] Re: APCとPHP Accelerator で速度テストしてみたんですが。
Masaaki Kikuzawa
php-users@php.gr.jp
Thu, 14 Nov 2002 17:04:26 +0900
菊澤です。
On Thu, 14 Nov 2002 14:30:20 +0900
Youichi Iwakiri <yiwakiri@st.rim.or.jp> wrote:
> >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秒
>
> phpAの1回目の時間は納得行くのですが、APCmmap&APCshmの値が
> ちょっと変じゃないですか?
>
> コンパイルフェーズをバイパス(キャッシュ利用)出来ない場合は、
> 本来のコンパイラが呼ばれてから実行されるので、モジュール版PHPと
> 同程度+αの時間が掛かるはずなんですけど
たけさんの結果を見るとおもしろいですよね。
・phpAでは、
最初の一回の実行がキャッシュなしと同等。
二回目以降劇的に速くなる。
・APCでは、
最初の一回の実行が二回目以降に較べると若干遅い。
しかし、phpAのようにキャッシュなしと同等ほどに遅くない。
ちょっと考察してみます。
条件:
私の提示したスクリプトapc.phpを使っての結果と考える。
メインループでは、
for($i = 0; $i < 10; $i++) {
include("apc.inc");
}
というように、なってます。
仮説:
APCでは、
最初のincludeで、apc.incのPHPの中間コードキャッシュを作成する。
phpAでは、
apc.php実行後に、apc.incのPHPの中間コードキャッシュを作成する。
仮説を基に考察:
APCでは、最初のループのincludeでapc.iniのキャッシュを作っているので、
残り9回分は、キャッシュから読むので速くなっている。
だから、apc.phpの1回目の実行が2回目以降に較べて若干遅くなる。
phpAでは、実行中には、apc.iniのキャッシュを作らず、実行後、キャッシュ
を作成する。だから、apc.phpの1回目の実行はキャッシュなしと同等に
なってしまう。
こんな感じでどうでしょうか?
--------------------------------------------
菊澤 正明 mailto:kikuzawa@coo-co-ltd.co.jp
(株)空 Coo co.,ltd. http://www.coo-cyber.com