PHP性能分析工具XHProf安裝使用教程
HProf是facebook開(kāi)源出來(lái)的一個(gè)php輕量級(jí)的性能分析工具,跟Xdebug類似,但性能開(kāi)銷更低,還可以用在生產(chǎn)環(huán)境中,也可以由程序開(kāi)關(guān)來(lái)控制是否進(jìn)行profile?;跒g覽
器的性能分析用戶界面能更容易查看,或是與同行們分享成果。也能繪制調(diào)用關(guān)系圖。在數(shù)據(jù)收集階段,它記錄調(diào)用次數(shù)的追蹤和包容性的指標(biāo)弧在動(dòng)態(tài)callgraph的一個(gè)程序。
它獨(dú)有的數(shù)據(jù)計(jì)算的報(bào)告/后處理階段。在數(shù)據(jù)收集時(shí),XHProfd通過(guò)檢測(cè)循環(huán)來(lái)處理遞歸的函數(shù)調(diào)用,并通過(guò)給遞歸調(diào)用中每個(gè)深度的調(diào)用一個(gè)有用的命名來(lái)避開(kāi)死循環(huán)。
XHProf的輕量級(jí)性質(zhì)和匯聚功能,使得它非常適合用于收集“生產(chǎn)環(huán)境”的性能統(tǒng)計(jì)數(shù)據(jù)的統(tǒng)計(jì)。
1. 安裝XHProf
wget http://pecl.php.net/get/xhprof-0.9.2.tgz
tar zxf xhprof-0.9.2.tgz
cd xhprof-0.9.2
cp -r xhprof_html xhprof_lib <directory_for_htdocs>
cd extension
phpize
./configure
make
make install
2. 配置 php.ini 文件
[xhprof]
extension=xhprof.so
;
; directory used by default implementation of the iXHProfRuns
; interface (namely, the XHProfRuns_Default class) for storing
; XHProf runs.
; 記得<directory_for_storing_xhprof_runs>WEB要有寫入權(quán)限
xhprof.output_dir=<directory_for_storing_xhprof_runs>
重啟服務(wù)讓修改生效,現(xiàn)在就可以使用XHProf了,不過(guò)為了顯示效果更炫,最好繼續(xù)安裝Graphviz。
3. 安裝Graphviz
wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.26.3.tar.gz
tar zxf graphviz-2.26.3.tar.gz
cd graphviz-2.26.3
./configure
make
make install
安裝完成后,會(huì)生成/usr/local/bin/dot文件,你應(yīng)該確保路徑在PATH環(huán)境變量里,以便XHProf能找到它。
4. 應(yīng)用XHProf
xhprof_enable();//打開(kāi)xhprof
/******程序邏輯 Start******/
function test1(){
sleep(3);
return;
}
function test2(){
test1();
}
function test3(){
test2();
}
function p(){
echo '<h3>xhprof test</h3>';
}
p();
test3();
/******程序邏輯 End******/
$xhprof_data = xhprof_disable();//關(guān)閉xhprof
//保存xhprof數(shù)據(jù)
include_once '../xhprof_lib/utils/xhprof_lib.php';
include_once '../xhprof_lib/utils/xhprof_runs.php';
$xhprof_runs = new XHProfRuns_Default();
$xhprof_source = 'xhprof_test';
$run_id = $xhprof_runs->save_run($xhprof_data, $xhprof_source);
$report_url = 'http://xhprof.rebill.info/index.php?run='.$run_id.'&source='.$xhprof_source;
echo '<br>';
echo 'view the performance report:<a href="'.$report_url.'" target="_blank">'.$report_url.'</a>';
如此一來(lái),會(huì)在上面設(shè)定的xhprof.output_dir目錄里生成名字類似4c236583ef490.xhprof_test的數(shù)據(jù)文件,可以很方便的通過(guò)Web方式瀏覽效果:
http://xhprof.rebill.info/index.php?run=4c236583ef490&source=xhprof_test
目前顯示的是表格形式的顯示,點(diǎn)擊頁(yè)面上的[View Full Callgraph],就能看到精美的圖片顯示了。
在線測(cè)試體驗(yàn)地址:http://xhprof.rebill.info/test.php
相關(guān)文章
php編程實(shí)現(xiàn)追加內(nèi)容到txt文件中的方法
這篇文章主要介紹了php編程實(shí)現(xiàn)追加內(nèi)容到txt文件中的方法,涉及php覆蓋式添加內(nèi)容到txt文件、追加內(nèi)容以及逐行讀取txt文件的相關(guān)操作技巧,需要的朋友可以參考下2017-08-08
PHP swoole和redis異步任務(wù)實(shí)現(xiàn)方法分析
這篇文章主要介紹了PHP swoole和redis異步任務(wù)實(shí)現(xiàn)方法,結(jié)合具體實(shí)例形式對(duì)比分析了swoole和redis異步任務(wù)具體實(shí)現(xiàn)方法及區(qū)別,需要的朋友可以參考下2019-08-08
PHP中simplexml_load_string函數(shù)使用說(shuō)明
這個(gè)問(wèn)題遇到好幾次了,今天翻看以前代碼的時(shí)候看到,便記下來(lái),需要的朋友可以參考下。2011-01-01
微信公眾平臺(tái)開(kāi)發(fā)教程②微信端分享功能圖文詳解
這篇文章主要介紹了微信公眾平臺(tái)開(kāi)發(fā)微信端分享功能,結(jié)合圖文形式詳細(xì)分析了微信分享功能的原理、操作步驟及相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-04-04
一致性哈希算法以及其PHP實(shí)現(xiàn)詳細(xì)解析
以下是對(duì)用PHP實(shí)現(xiàn)一致性哈希算法進(jìn)行了詳細(xì)的介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
php實(shí)現(xiàn)可運(yùn)算的驗(yàn)證碼
這篇文章主要介紹了php如何實(shí)現(xiàn)可運(yùn)算的驗(yàn)證碼,代碼很詳細(xì),值得大家學(xué),感興趣的小伙伴們可以參考一下2015-11-11

