首頁 >後端開發 >php教程 >PHP效能分析工具xhprof的安裝使用與相關的注意事項

PHP效能分析工具xhprof的安裝使用與相關的注意事項

jacklove
jacklove原創
2018-07-05 17:46:221964瀏覽

xhprof 是一款由Facebook工程師開發與維護的一款PHP效能分析、除錯工具,相較於xdebug要更輕量,更節省資源,強烈建議大家使用。以下這篇文章主要為大家介紹了關於PHP效能分析工具xhprof的安裝與使用方法的相關資料,需要的朋友可以參考下。

前言

xhprof由facebook開源出來的一個PHP效能監控工具,佔用資源很少,甚至能夠在生產環境中部署。

它可以結合graphviz使用,能夠以圖片的形式很直觀的展示程式碼執行耗時。

以下主要講一下安裝和使用程序

1、安裝

(1)下載和解壓縮

wget http://pecl.php.net/get/xhprof-0.9.4.tgz
tar zxvf xhprof-0.9.4.tgz

#(2)編譯與執行

cd xhprof-0.9.4/extension/
phpize //此语句编译PHP扩展的工具,主要是根据系统信息生成对应的configure文件,一般存放在/usr/local/php/bin/目录下
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install
mkdir /tmp/xhprof

(3)編輯php.ini:

[xhprof]
extension = xhprof.so
xhprof.output_dir=/tmp/xhprof

xhprof. output_dir是分析產生日誌的保存路徑

(4)安裝外掛程式

最後回傳數組,就表示安裝好了。具體哪些數值是什麼意思先別管,因為下面有UI的設定。會很直覺!

yum -y install libjpeg freetype freetype-devel libjpeg-devel liberation-sans-fonts.noarch

自動安裝

#
yum -y install graphviz

(5)插入程式碼

//找到你要分析的代码,在代码开始处添加,start profiling,将会统计内存占用情况
xhprof_enable(XHPROF_FLAGS_MEMORY);
//具体代码
//在代码结束位置添加
$xhprof_data = xhprof_disable(); // stop profiler, display raw xhprof data for the profiler run
include_once ("/usr/local/src/xhprof-0.9.4/xhprof_lib/utils/xhprof_lib.php"); # 请注意设置站点 include_path 权限
include_once ("/usr/local/src/xhprof-0.9.4/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.]
$xhprof_runs->save_run($xhprof_data, "xhprof_foo");

(6)查看

給(2)中的xhprof- 0.9.4/xhprof_html 設定一個可以存取的站點,可以簡潔的使用php內建的server

cd xhprof-0.9.4/xhprof_html
php -S 0.0.0.0:8990

然後訪問ip 連接埠就可以報告了。

2、使用說明

  • #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峰值百分比。

注意:

#      1.正式啟用前,請確認不會影響正常的數據輸出。確認輸出內容無異後,再上線。

      2、每個url的max_time不要設定的過小。

      3、xhprof會影響線上服務的效能,因此最好只在一台機器上進行監控,或 修改xhprof.php程式碼,對請求進行隨機監控。

總結

您可能感興趣的文章:

php封裝db類別連接sqlite3資料庫的方法實例講解

PHP實作模擬http請求的方法分析講解

##php實作socket推送技術的範例講解

以上是PHP效能分析工具xhprof的安裝使用與相關的注意事項的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn