森川です。
今回はXdebugを使用したプロファイル結果を閲覧するwebgrindの紹介です。
インストールはまずプロジェクトトップページかダウンロードページからダウンロードしてアクセス可能なところに展開します。
次に、プロファイル結果を保存しているディレクトリをconfig.phpのprofileDirに設定します。あとは、セレクトボックスに表示されれば終了です。
webgrindはPHPで記述されたWebアプリなので、Xdebugを使用しているサーバ上で動作させることができます。今まで使っていたWinCacheGrindとwebgrindを比較した際の良い点、悪い点をまとめてみました。
1. プロファイル結果をクライアントに移す必要がない
今回使用してみて一番よいなと思ったのが、サーバ上で動作させることができるので、プロファイル結果をWinCacheGrindがインストールされているマシンに移さなくてもよいということです。プロファイル結果は数MBにもなるので、結構移すのが面倒だったりするので、これは大きなメリットです。
ただこの点に関しては、同一のマシンにWinCacheGrindやKCacheGrindなどがインストールされている場合は、あまりメリットはないかも知れません。
それと、webgrindもPHPで記述されたWebアプリなので、プロファイル結果を閲覧する場合のフローは以下のようになります。
Xdebugでプロファイリングを有効にする
↓
スクリプトを実行
↓
Xdebugを無効にする
↓
webgrindのページにアクセス
一度Xdebugを無効にしないと余計なプロファイル結果が出てきてしまうので、要注意です。
2. スクリプトをWebから閲覧できる
これもWebアプリならではだと思いますが、時間がかかっている関数の呼び出し部分をブラウザ上で閲覧することができます。
ちょっとしたことですが、結構便利だと思います。
以下は悪い点です。
3. 動作が遅い
WinCacheGrindもかなり遅いですが、webgrindの方が動作がもっさりしている感じがします。とくに関数の詳細(中で何を呼んでいるかなど)を閲覧するのにサーバへのアクセスが発生するようで、もっさり・イライラしてきました。
4. 操作性が悪い
WinCacheGrindでは、関数の呼び出しが階層化されていて、ダブルクリックで下の階層に移っていくことができますが、webgrindでは階層化されていません。
階層化されていないという以外は、特定の関数内で何が呼ばれているか、その関数がどこから呼び出されているか、何回呼び出されているか、どれだけ時間がかかったのか、などの基本機能はあります。
とりあえず、簡単にですが使ってみてですが、結構使えるかも!というのが印象です。
開発はわりと活発に行われているようなので、今後に期待です。