HProf是facebook開源出來的一個(gè)php輕量級的性能分析工具,跟Xdebug類似,但性能開銷更低,還可以用在生產(chǎn)環(huán)境中,也可以由程序開關(guān)來控制是否進(jìn)行profile。基于瀏覽器的性能分析用戶界面能更容易查看,或是與同行們分享成果。也能繪制調(diào)用關(guān)系圖。在數(shù)據(jù)收集階段,它記錄調(diào)用次數(shù)的追蹤和包容性的指標(biāo)弧在動態(tài)callgraph的一個(gè)程序。
它獨(dú)有的數(shù)據(jù)計(jì)算的報(bào)告/后處理階段。在數(shù)據(jù)收集時(shí),XHProfd通過檢測循環(huán)來處理遞歸的函數(shù)調(diào)用,并通過給遞歸調(diào)用中每個(gè)深度的調(diào)用一個(gè)有用的命名來避開死循環(huán)。
XHProf的輕量級性質(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了,不過為了顯示效果更炫,最好繼續(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
 
安裝完成后,會生成/usr/local/bin/dot文件,你應(yīng)該確保路徑在PATH環(huán)境變量里,以便XHProf能找到它。
4. 應(yīng)用XHProf,代碼如下:
- xhprof_enable();//打開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>';
 
如此一來,會在上面設(shè)定的xhprof.output_dir目錄里生成名字類似4c236583ef490.xhprof_test的數(shù)據(jù)文件,可以很方便的通過Web方式瀏覽效果:
http://xhprof.rebill.info/index.php?run=4c236583ef490&source=xhprof_test
目前顯示的是表格形式的顯示,點(diǎn)擊頁面上的[View Full Callgraph],就能看到精美的圖片顯示了。
在線測試體驗(yàn)地址:http://xhprof.rebill.info/test.php
新聞熱點(diǎn)
疑難解答
圖片精選