#navi_header|PHP| 最後のアップデートが2005年6月前後のxdebugのメモ。PHP4がまだ現役だった頃ですが、既にxdebugは有名だった気がします。 #outline ---------------- * 環境(OSはWinXP+SP2) | PHP-4.3.11 | c:\php\ | | php.ini | c:\windows\php.ini | | extension_dir | c:\php\extensions\ | | Apache2 | c:\program files\apache group\apache2 | * xdebugの導入 http://www.xdebug.org/ ダウンロードできます。ただ、Linux版の最新は結構他にも転がってるっぽいんですが(PECL?)、Windows版のバイナリDLLは上記URLの「BINARY SNAPSHOTS (2.0dev)」とかいうとこから落とします。 落としたDLLファイルを、PHPのextension_dirに指定してあるディレクトリにコピー。その後、php.iniに以下の行を付け足します。 extension=... ... extension=xdebug-4.3.6-2.0.0beta1.dll(バージョン部分とかは多少前後有り) これでApacheを再起動し、phpinfo()を呼び出して xdebug の項目が表示されれば動作完了です。 * xdebugでprofiling 詳細は下記公式ドキュメント参照。 http://www.xdebug.org/docs/ とりあえず、まずはプロファイル出力ディレクトリを用意しておきます。今回はc:\php\xdebug.profilesというフォルダを作りました。んで、profilingしたいPHPアプリのトップにいつものごとく.htaccessファイルを作って、次のように書いておきます。 php_flag xdebug.profiler_enable on php_value xdebug.profiler_output_dir "C:\php\xdebug.profiles" php.iniに書いて全体に適用((プロファイル出力ファイルのサイズはかなり大きいので、全体に適用するのはおすすめできない))したい場合はphp.iniに、extensionの指定後、 xdebug.profiler_enable = on xdebug.profiler_output_dir "C:\php\xdebug.profiles" の用に指定しておきます。 さて、こうすると.htaccess配下のPHPファイルの挙動は全てprofilingされだします。 んで、出力されたプロファイルを解析するツールが必要になるわけです。 公式ドキュメントサイトでも言及されていますが、 '' CacheGrind '' というたぐいのツールが使えるそうです。KDE用のKCacheGrindとWindows用のWinCacheGrindがあるそうです。KDEもWindowsも使いたくない場合はPerlScriptでテキストに落とし込むのも一応あるにはあるそうですが。 今回はWindows上で動かしてるので、当然WinCacheGrindというのを使います。 http://sourceforge.net/projects/wincachegrind WinCacheGrindにプロファイルログを読み込ませると、関数の呼び出し順序や回数、時間などが分かりやすく確認できるのでお奨めです。 #navi_footer|PHP|