您的位置:首頁/技術文章
文章詳情頁

PHP7下安裝并使用xhprof性能分析工具

【字号: 作者:豬豬瀏覽:10日期:2022-09-07 17:38:51

該 xhprof 版本是從 https://github.com/longxinH/xhprof 獲取

安裝 xhprof

cd xhprof/extension/

phpize

./configure 

make

然后在/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://<xhprof-ui-address>/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 profilingxhprof_enable();

結束位置添加

// stop profiler$xhprof_data = xhprof_disable();// display raw xhprof data for the profiler runprint_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://<xhprof-ui-address>/index.php?run=$run_id&source=xhprof_foon'. '---------------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性能分析工具的詳細內容,更多關于PHP7下安裝并使用xhprof的資料請關注好吧啦網其它相關文章!

標簽: PHP
相關文章:
国产综合久久一区二区三区