おおたです。PukiWiki で,特定時間帯にアクセスが集中する
(具体的には,学生が授業中にみんな見る)ホストの管理を
していたりします.

stainedさんが2004年06月12日(土) 02時24分26秒に、
fj.net.www.servers,fj.comp.programmingに投稿した
<87zn7ahut1.wl%stained@po10.lcv.ne.jp>の記事から

> > PukiWiki が、ページの下の方に実行時間を表示しますよね。
> > こんな感じ。
> >     HTML convert time to 0.433 sec. 
> > あれは、どうやって出しているんでしょうね。
> 
> 表示部分は、次のようになってます。
> 
> ;; skin/pukiwiki.skin.ja.php より ;;
> ;  [...]
> ;  <?php echo S_COPYRIGHT ?>
> ;   <br />
> ;   Powered by PHP <?php echo PHP_VERSION ?>
> ;   <br /><br />
> ;   HTML convert time to <?php echo $taketime ?> sec.
> ;  </div>
> 
> で、$taketime は、さらに 
> 
> ;; html.php より ;;
> ;  [...]
> ;  $longtaketime = getmicrotime() - MUTIME;
> ;  $taketime = sprintf('%01.03f',$longtaketime);
> 
> となっています。

 おお,ありがとうございます.私もちょうどそれを調べていたけど
気が付きませんでした.

nojimaさんが2004年06月11日(金) 12時25分08秒に、
fj.net.www.servers,fj.comp.programmingに投稿した
<m3hdti93or.fsf@nightmare.hm.taito.co.jp>の記事から

>   PHPで出来た特定のページが、特定の状況の時に実行速度が遅く、
> どうにもプロファイリングをして改善を試みようと考えたとします。
> 
>  apache+phpそのものに改造を行うことなくプログラムの実行についての
> プロファイリングを試みようと思った場合、どのような手法が考えられます
> でしょうか?

 PHPの処理だけではなくて,データの転送に時間がかかる場合も
よくあるので,私は Apache の KeepAlive を on にした上で

MaxKeepAliveRequests 20

としてます(PukiWikiが吐く絵の数がだいたいこれぐらい).他にも Apache の 
LoadModule で要らないモジュールをがしがし落とすのは,組み込みでなく
DSO(Dynamically Shared Object かな) でも,多少なりとも効果があるかと
思います.

Apacheのチューニングについては@ITの連載

Apacheによるサーバ構築
http://www.atmarkit.co.jp/flinux/index/indexfiles/index-linux.html#apache13

の,特に

Apacheパフォーマンス・チューニングのポイント
http://www.atmarkit.co.jp/flinux/rensai/apache15/apache15a.html
Apacheパフォーマンス・チューニングの実践
http://www.atmarkit.co.jp/flinux/rensai/apache16/apache16a.html

のあたりが参考になりました.ちょっと本題とは離れるかもしれませんが,
参考までに.

----------- ニュースはみんなのために /|\ メールは個人のために -----------
太田 尚志 - OTA Takashi - http://web.sfc.keio.ac.jp/~t00156to/ ICQ#:39782589