[PHP-users 507] Re: PHPソースのエンコード

Yasuo Ohgaki php-users@php.gr.jp
Tue, 3 Jul 2001 20:35:18 +0900


大垣です。

> 玉川@STSです。
> ・比較的長めのソースで
> ・ループがあまり回らない
> 場合に効果が見えやすいみたいです。きちんとベンチしたわけじゃないですが、
> 数10%程度の改善が現れるケースもありました。

もしかして、HTMLの中にPHPコードが入っているタイプのソースではないでしょうか?
Cacheが非常に有効に働く条件として、読み込まれるPHPのソースのが比較的長い、または
多くのinclude/requireされたファイルがある等の条件があります。

OOPの場合、実行されないコードがクラス定義の中に多く含まれ、多くの場合クラス定義
がファイル単位に分かれていて多くのファイルを読み込むため、キャッシュが非常に有効
に働きます。(特にShmを利用している場合)

OOPでなくても、大きめのライブラリを複数インクルードするような作りのアプリケー
ションにも効果は大きいと思います。

PHPを利用した一般的な商用サイトの場合、200〜1700%位のスループット向上があるよう
です。

> 要は、一回のヒット毎のソースのコンパイルの時間が節約できる仕組みなので、
> ヒット数が相当多いサイトじゃないと意味がないように思われます。ソース中
> でループ回している回数が多く、そこで時間が取られているような場合には
> 効果薄ですね。

ループが多いアプリケーションや比較的シンプルなPHPコードの場合、キャッシュは無用
とは言いませんが、無くてもあまり変わらないと思います。

> それとも、もっと設定で変わるのかな?includeとかrequireしているファイル
> に対しても、自動的に効果は出るんですよね?

PHPがパースする方法で読み込まれたファイルは全てキャッシュされます。(PHPでパース
しても意味が無いファイル、テキストファイル等をinclude()してもキャッシュされま
す。)

--
Ohgaki, Yasuo (大垣 靖男) 
Mail: yohgaki@dd.iij4u.or.jp