PHPプロファイラー XHProf

  • このエントリーをはてなブックマークに追加
  • Pocket

PHPのプロファイラー「XHProf」が紹介されていた。
元ネタはphpspot開発日誌より。

前は、XdebugとWinCacheGrindでプロファイルできたが、XHProfだと一度設定すればブラウザだけでプロフィリングできる。チョー便利。

 

というわけで、早速サーバー(CentOS 5.4)にインストールしてみた。

インストール

公式ドキュメント

1.ソースをダウンロード

cd /root
wget http://pecl.php.net/get/xhprof-0.9.2.tgz

2.makeしてインストール

tar xvfz xhprof-0.9.2.tgz
cd xhprof-0.9.2/extension/
phpize
./configure
make
make install
make test

3.php.iniを編集

vi /etc/php.ini

[xhprof]
extension=xhprof.so
xhprof.output_dir=/var/log/xhprof

4.ログディレクトリを作成して、apache再起動

mkdir /var/log/xhprof/
chmod 777 /var/log/xhprof/

service httpd restart

5.プロファイル結果をプラウザから閲覧するために、専用ビューアに必要なファイルをコピー

cp -a ./xhprof_* /doc_root/xhprof/

6.解析対象となるphpファイルに以下を追加

xhprof_enable();    // start profiling

// 処理

$xhprof_data = xhprof_disable();    //stop profiler

//  プロファイリングページへのリンクを追加
$XHPROF_ROOT = '/doc_root/xhprof';  //xhprofをインストールしたディレクトリ
$XHPROF_SOURCE_NAME = '';
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($xhprof_data, $XHPROF_SOURCE_NAME);
echo "<a href=\"http://domain/xhprof/xhprof_html/index.php?run=$run_id&source=$XHPROF_SOURCE_NAME\">xhprof Result</a>\n";

7.xhprofにアクセス

お!プロファイル結果が表示された!

 

でも [View Callgraph ] にアクセスすると

Error: either we can not find profile data for run_id 4d6adb812f2f2 or the threshold 0.01 is too small or you do not have 'dot' image generation utility installed.

dot というものが足りないらしい。

ググルと Graphviz をインストールすれば良いみたい。

8.Graphviz をインストール

cd /root
wget http://www.graphviz.org/graphviz-rhel.repo
cp graphviz-rhel.repo /etc/yum.repos.d/
yum install graphviz

インストール後は無効化
vi graphviz-rhel.repo
#enabled=1
enabled=0

[View Callgraph ] にアクセスして無事表示できた。

ふぅ。

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。

コメントを残す

*