Install Xhprof on Ubuntu 12.04
最近有想要分析自己程式碼的衝動,就想起了Facebook
所撰寫的Xhprof
,因為在安裝途中有點小問題,所以就紀錄一下完整的安裝過程。
安裝
編譯環境
sudo apt-get build-dep php5
sudo apt-get install php5-dev
Xhprof
wget http://pecl.php.net/get/xhprof-0.9.2.tgz
tar -zxvf xhprof-0.9.2.tgz
cd xhprof-0.9.2
複製xhprof
所需要用到的程式到你的 web 根目錄。
cp -a xhprof_html xhprof_lib /path/to/htdocs
對xhprof.c
進行Patch。
curl https://github.com/facebook/xhprof/commit/a6bae51236.diff | patch -p1
開始編譯並安裝。
cd extension
phpize
./configure
make
sudo make install
修改php.ini
設定檔。
[xhprof]
extension=xhprof.so
xhprof.output_dir=/tmp
Graphviz
,這是用來繪製結果需要用到的套件。
sudo apt-get install graphviz
使用
重新啟動Web Service
,然後將的程式碼加入需要測試的檔案中,並執行程式。
<?php
xhprof_enable();
// 待測程式碼
$xhprof_data = xhprof_disable();
include_once "xhprof_lib/utils/xhprof_lib.php";
include_once "xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
$xhprof_name = 'xhprof_foo';
// 產生一個連結連至 Xhprof 統計結果
echo sprintf(
'<a href="xhprof_html/index.php?run=%s&source=%s">summary</a>',
$xhprof_runs->save_run($xhprof_data, $xhprof_name),
$xhprof_name
);