91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php性能分析工具xhprof

發布時間:2020-06-17 09:29:59 來源:網絡 閱讀:425 作者:xiaoyuan234 欄目:web開發

XHProf是一個分層PHP性能分析工具。它報告函數級別的請求次數和各種指標,包括阻塞時間,CPU時間和內存使用情況。一個函數的開銷,可細分成調用者和被調用者的開銷,XHProf數據收集階段,它記錄調用次數的追蹤和包容性的指標弧在動態callgraph的一個程序。它獨有的數據計算的報告/后處理階段。在數據收集時,XHProfd通過檢測循環來處理遞歸的函數調用,并通過給遞歸調用中每個深度的調用一個有用的命名來避開死循環。XHProf分析報告有助于理解被執行的代碼的結構,它有一個簡單的HTML的用戶界面( PHP寫成的)
xhprof安裝配置
[root@news ~]# wget http://pecl.php.net/get/xhprof-0.9.2.tgz
[root@news ~]# tar zxf xhprof-0.9.2.tgz
[root@news xhprof-0.9.2]#cd xhprof-0.9.2
[root@news xhprof-0.9.2]#cp -r xhprof_html xhprof_lib /www/auto/(網站源碼路徑復制完成之后記得修改用戶所有者權限)
[root@news xhprof-0.9.2]#cd extension
[root@news extension]# ./configure --with-php-config=/usr/local/php/bin/phpize
[root@news extension]# make && make install
安裝完成之后修改php.ini添加(前提是你的擴展路徑已經修改成extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/")
extension = xhprof.so
xhprof.output_dir=/log/xhprof
修改完成之后重新啟動web服務 apache重啟服務 nginx重啟php-fpm服務
安裝Graphviz:(也可以不安裝,如果安裝了Graphviz,XHProf會用比較牛的圖形方式展現統計數據)
root@news ~]# wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
root@news ~]# tar zxf graphviz-2.24.0.tar.gz
root@news ~]# cd graphviz-2.24.0
[root@news graphviz-2.24.0]# ./configure
[root@news graphviz-2.24.0]#make
[root@news graphviz-2.24.0]#make install
安裝完成后,會生成/usr/local/bin/dot文件,你應該確保路徑在PATH環境變量里,以便XHProf能找到它
xhprof_enable(); //統計的代碼部分之前加,如果要顯示CPU占用 可以加入XHPROF_FLAGS_CPU參數,內存是XHPROF_FLAGS_MEMORY,如果兩個一起:XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY,如:xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
xhprof_disable();//統計的代碼部分之后加
這樣xhprof就可以統計當前頁面的函數性能情況了。xhprof會把每次訪問加入統計代碼的頁面的性能統計結果在指定目錄下生成一個文件,文件名命名方式為:本次訪問的系統ID.命名空間,每次刷新頁面都會重新生成一個文件,每個的系統ID都不同。
然后通過xhprof_html目錄的http訪問url來查看結果。如:http://app/xhprof_html/?run=運行id&source=命名空間(其中運行ID和命名空間可以根據xhprof生成的文件名來確定)
使用XHProf:

// start profiling
xhprof_enable();

// run program
....

// stop profiler
$xhprof_data = xhprof_disable();

//
// Saving the XHProf run
// using the default implementation of iXHProfRuns.
//
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_lib.php";
include_once $XHPROF_ROOT . "/xhprof_lib/utils/xhprof_runs.php";

$xhprof_runs = new XHProfRuns_Default();

// Save the run under a namespace "xhprof_foo".
//
// **NOTE**:
// By default save_run() will automatically generate a unique
// run id for you. [You can override that behavior by passing
// a run id (optional arg) to the save_run() method instead.]
//
$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_foo\n".
"---------------\n";

貼下我的一個測試文件
[root@news trunk]# vi test.php 

<?php
xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);
phpinfo();
$data = xhprof_disable();
include_once "xhprof_lib/utils/xhprof_lib.php";
include_once "xhprof_lib/utils/xhprof_runs.php";
$xhprof_runs = new XHProfRuns_Default();
$run_id = $xhprof_runs->save_run($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://XXXX/xhprof_html/index.php?run=$run_id&source=xhprof_foo\n".
"---------------\n";
?>
之后在瀏覽器里面直接訪問test.php的頁面會在上面設定的xhprof.output_dir目錄里生成名字類似52ba534254958.xhprof_foo.xhprof的數據文件,可以很方便的通過Web方式瀏覽效果:
http://XXXX/xhprof_html/index.php?run=52ba534254958&source=xhprof_foo
目前顯示的是表格形式的顯示,點擊頁面上的[View Full Callgraph],就能看到精美的圖片顯示了。

 

下面是一些參數說明
Inclusive Time                 包括子函數所有執行時間。
Exclusive Time/Self Time  函數執行本身花費的時間,不包括子樹執行時間。
Wall Time                        花去了的時間或掛鐘時間。
CPU Time                        用戶耗的時間+內核耗的時間
Inclusive CPU                  包括子函數一起所占用的CPU
Exclusive CPU                  函數自身所占用的CPU
所有參數說明
Function Name 函數名

   Calls 調用次數

   Calls% 調用百分比

   Incl. Wall Time (microsec) 調用的包括子函數所有花費時間 以微秒算(一百萬分之一秒)

   IWall% 調用的包括子函數所有花費時間的百分比

   Excl. Wall Time (microsec) 函數執行本身花費的時間,不包括子樹執行時間,以微秒算(一百萬分之一秒)

   EWall% 函數執行本身花費的時間的百分比,不包括子樹執行時間

   Incl. CPU(microsecs) 調用的包括子函數所有花費的cpu時間。減Incl. Wall Time即為等待cpu的時間

   減Excl. Wall Time即為等待cpu的時間

   ICpu% Incl. CPU(microsecs)的百分比

   Excl. CPU(microsec) 函數執行本身花費的cpu時間,不包括子樹執行時間,以微秒算(一百萬分之一秒)。

   ECPU% Excl. CPU(microsec)的百分比

   Incl.MemUse(bytes) 包括子函數執行使用的內存。

   IMemUse% Incl.MemUse(bytes)的百分比

   Excl.MemUse(bytes) 函數執行本身內存,以字節算

   EMemUse% Excl.MemUse(bytes)的百分比

   Incl.PeakMemUse(bytes) Incl.MemUse的峰值

   IPeakMemUse% Incl.PeakMemUse(bytes) 的峰值百分比

   Excl.PeakMemUse(bytes) Excl.MemUse的峰值

   EPeakMemUse% EMemUse% 峰值百分比

 

 

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江达县| 定南县| 鄂伦春自治旗| 海宁市| 鄂托克前旗| 曲周县| 徐闻县| 磴口县| 息烽县| 吉林省| 响水县| 谷城县| 金坛市| 铜山县| 安庆市| 五大连池市| 上蔡县| 泰安市| 扶绥县| 绥宁县| 五台县| 罗甸县| 建湖县| 井陉县| 莱州市| 尚义县| 铜陵市| 祁连县| 平度市| 马鞍山市| 夏河县| 临沂市| 卢氏县| 库车县| 清流县| 武汉市| 诏安县| 乐安县| 鸡泽县| 宜兰市| 两当县|