PHPプログラムを解析して何処が重いか?がブラウザ上で簡単に分かる「XHProf」
2009年03月25日-
XHProf Documentation (Draft)
PHPプログラムを解析して何処が重いか?がブラウザ上で簡単に分かる「XHProf」。
通常、PHPでのプロファイリングというと、Xdebugでファイルを吐き出して、WinCacheGrindやKCacheGrindで読み込むというのが定番です。
ですが、この方法だと、ファイルを吐き出したファイルをGETして、ソフトに読み込ませる、というちょっと面倒な手順が必要でした。
XHProf を使えば、ブラウザ上で、プロファイリングが出来るみたいです。
XHProfの特徴
まず、セグメントごとの実行時間やメモリ利用の状況なんかがブラウザで見れます。
プログラムの構造を把握するのにも使えます。
プロファイリングの階層表示
2つのプロファイリングのdiff(比較)が可能
更に、Callgraphというものが見れるらしい。
プログラム実行の遷移図みたいなもので、重い部分を赤とか黄で視覚的に表示してくれる…、ってこれは凄い!
インストール
インストールはダウンロードしたパッケージを、phpize→configure→make という他のPHP拡張同様の流れでコンパイルしてphp.iniに.soを追記します。
→ 具体的な方法
XHProf自体はpeclにもなっているようですので、peclでもインストールできるかも。
→ PECL :: Package :: xhprof
使い方
プロファイリングの開始、終了は pecl インストールで使えるようになった関数を呼び出すだけという簡単仕様になってるみたい。
<?php
// プロファイリングの開始
xhprof_enable();
// プロファイリングしたい部分。何らかの処理
hogehoge();
// プロファイリングの終了
$xhprof_data = xhprof_disable();
// データを生で閲覧
print_r($xhprof_data);
?>
このままだと、データが綺麗に見えないので、同梱のPHPプログラムによって整形出力します。
ダウンロードしたパッケージの、examples以下にあるsample.phpや、xhprof_html, xhprof_lib 以下のファイルなんかが参考に出来るでしょう。
データを綺麗に表示する部分のソースはPHPなので、比較的簡単にソースを改造して、プロファイリング画面のUIを柔軟に変えることが出来そうですね。
PHP5.2以上で動作するようです。
関連エントリ
- PHPアプリのプロファイリングをWebベースで行う「webgrind」
似たようなツールを過去にも紹介しましたね
最新のブログ記事(新着順)
- 筆で書いたようなカナ書体「筆竹仮名B」
- 無料・商用利用可な丸文字ピクセルフォント「マルミーニャM」
- スペースコブラ風フォント
- Next.jsのVercelから商用利用可能なフリー汎用フォント「Geist Font 」
- 無料で使えるいい感じの日本語フォント「しっぽり太ゴシック」
- CSSのみで実装された500種類のローディングアニメーション「CSS Loaders」
- 画像ホバーで様々なエフェクトをかけられる「Izmir」
- CSSのbox-shadowをGUIで生成できる「CSS Box Shadows Generator」
- 好きな画像や文字を埋め込んだQRコードをリアルタイムで作れるWEBツール
- 約7500種の汎用ピクトグラムアイコン集「Phosphor Icons」
- 過去のエントリ