php7下xhprof效能分析工具的安裝與使用的圖文程式碼教學

黄舟
發布: 2023-03-14 20:26:02
原創
2918 人瀏覽過


安裝xhprof

cd xhprof/extension/
phpize
./configure 
makemake install
登入後複製

然後在/etc/php.ini根據情況加入

extension=xhprof.so
登入後複製

執行

php -m | grep xhprof
登入後複製

#可以看見輸出,說明php擴充安裝成功,然後重啟Apache或php-fpm

運行

可以直接運行從github上clone下來的檔案裡面example目錄下的那個範例

輸出如下

Array
(    [main()] => Array        (            [ct] => 1            [wt] => 9        ))
---------------Assuming you have set up the http based UI for 
XHProf at some address, you can view run at 
http:///index.php?run=592567308784c&source=xhprof_foo
---------------
登入後複製

然後複製index.php後面的?run=592567308784c&source=xhprof_foo

存取

xhprof_html/index.php?run=592567308784c&source=xhprof_foo
登入後複製

可看見輸出

php7下xhprof效能分析工具的安裝與使用的圖文程式碼教學

#點擊中間的View Full Callgraph 即可看見效能分析圖片

報錯

failed to execute cmd:" dot -Tpng". stderr:sh: dot:command not found。
登入後複製
//解决方案yum install graphviz
登入後複製

隨機應變

例如想測試自己的項目,例如一款框架的性能分析。

複製xhprof_lib/utils/下的兩個檔案

xhprof_lib.php和xhprof_runs.php到入口檔案同級目錄,然後在入口檔案起始位置新增

// start profiling
xhprof_enable();
登入後複製

結束位置添加

// stop profiler
$xhprof_data = xhprof_disable();

// display raw xhprof data for the profiler run
print_r($xhprof_data);


include_once "xhprof_lib.php";
include_once "xhprof_runs.php";

// save raw data for this profiler run using default
// implementation of iXHProfRuns.
$xhprof_runs = new XHProfRuns_Default();

// save the run under a namespace "xhprof_foo"
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo");

echo "---------------\n".
     "Assuming you have set up the http based UI for \n".
     "XHProf at some address, you can view run at \n".
     "http:///index.php?run=$run_id&source=xhprof_foo\n".
     "---------------\n";
登入後複製

即可得到如上所示的那個url,然後再次去訪問

http://***/xhprof_html/index.php?run=*****&source=xhprof_foo
登入後複製

得到如下所示頁面

php7下xhprof效能分析工具的安裝與使用的圖文程式碼教學

##查看圖片

php7下xhprof效能分析工具的安裝與使用的圖文程式碼教學

圖中紅色的部分為效能比較低,耗時比較長的部分,我們可以根據根據哪些函數被標記為紅色對系統的程式碼進行最佳化

補充

    Function Name:方法名称。

    Calls:方法被调用的次数。

    Calls%:方法调用次数在同级方法总数调用次数中所占的百分比。

    Incl.Wall Time(microsec):方法执行花费的时间,包括子方法的执行时间。(单位:微秒)

    IWall%:方法执行花费的时间百分比。

    Excl. Wall Time(microsec):方法本身执行花费的时间,不包括子方法的执行时间。(单位:微秒)

    EWall%:方法本身执行花费的时间百分比。

    Incl. CPU(microsecs):方法执行花费的CPU时间,包括子方法的执行时间。(单位:微秒)

    ICpu%:方法执行花费的CPU时间百分比。

    Excl. CPU(microsec):方法本身执行花费的CPU时间,不包括子方法的执行时间。(单位:微秒)

    ECPU%:方法本身执行花费的CPU时间百分比。

    Incl.MemUse(bytes):方法执行占用的内存,包括子方法执行占用的内存。(单位:字节)

    IMemUse%:方法执行占用的内存百分比。

    Excl.MemUse(bytes):方法本身执行占用的内存,不包括子方法执行占用的内存。(单位:字节)

    EMemUse%:方法本身执行占用的内存百分比。

    Incl.PeakMemUse(bytes):Incl.MemUse峰值。(单位:字节)

    IPeakMemUse%:Incl.MemUse峰值百分比。

    Excl.PeakMemUse(bytes):Excl.MemUse峰值。单位:(字节)

    EPeakMemUse%:Excl.MemUse峰值百分比。
登入後複製

以上是php7下xhprof效能分析工具的安裝與使用的圖文程式碼教學的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!