xhprofインストールメモ

xhprofはfacebookで開発されたPHPのプロファイリングツールです。
今回はそのインストールメモ

環境:CentOS 6.4・PHP 5.3

xhprofインストール・設定

xhprofのインストール

wget http://pecl.php.net/get/xhprof-0.9.2.tgz
tar xvzf xhprof-0.9.2.tgz
cd xhprof-0.9.2/extension/
phpize
./configure
make
make test
make install

php.iniを編集

vi /etc/php.ini
# 下記内容を追加
[xhprof]
extension=xhprof.so
xhprof.output_dir=/var/log/xhprof

ログディレクトリを作成

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

apache再起動

/etc/init.d/httpd restart

httpのドキュメントルートに「xhprof_html」「xhprof_lib」をコピー

cd ../
cp -rp xhprof_* /document_root/

プロファイリングしたいPHPファイルに下記の記述を追加

// プロファイリングの開始
xhprof_enable();

// ---------------------------------------
// --- ここにプロファイリングしたい処理処理 ---
// ---------------------------------------

// プロファイリングの終了
$xhprof_data = xhprof_disable();

$XHPROF_ROOT = realpath(dirname(__FILE__) );
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_foo");

// そのまま出力
var_dump($xhprof);

// URLを生成してリンクを作成
echo "<a href=\"/xhprof_html/index.php?run=$run_id&source=xhprof_foo\">http://sawara.me/xhprof_html/index.php?run=$run_id&source=xhprof_foo</a>";

で、以下のような画面が出力されていたら成功です。

XHProf_Hierarchical Profiler Report 2013-04-26 08-10-47

[View Full Callgraph]をクリックして以下のように処理がグラフで出力されます。

callgraph

もし以下のようなエラーが出ていたらgraphvizというのをインストール

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

graphvizインストール

cd /etc/yum.repos.d/
wget http://www.graphviz.org/graphviz-rhel.repo
yum install graphviz
yum install graphviz-gd
# インストール後はリポジトリを無効化
vi /etc/yum.repos.d/graphviz-rhel.repo
enabled=1
# ↓
enabled=0

phpizeが無い場合

yum install php-devel

コメントを残す