home ホーム search 検索 -  login ログイン  | reload edit datainfo version cmd icon diff delete  | help ヘルプ

PHP/xdebugメモ

PHP/xdebugメモ

PHP / xdebugメモ
id: 42 所有者: msakamoto-sf    作成日: 2005-06-15 21:46:19
カテゴリ: PHP 

最後のアップデートが2005年6月前後のxdebugのメモ。PHP4がまだ現役だった頃ですが、既にxdebugは有名だった気がします。


環境(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に書いて全体に適用*1したい場合は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にプロファイルログを読み込ませると、関数の呼び出し順序や回数、時間などが分かりやすく確認できるのでお奨めです。


*1: プロファイル出力ファイルのサイズはかなり大きいので、全体に適用するのはおすすめできない

プレーンテキスト形式でダウンロード
現在のバージョン : 1
更新者: msakamoto-sf
更新日: 2008-12-21 21:52:33
md5:f89ec8bc80fed83cde4393121cb95033
sha1:a858f89428a2bbb070d0e666ec76b90744c7a05c
コメント
コメントを投稿するにはログインして下さい。