首頁  >  文章  >  後端開發  >  PHP效能測試工具xhprof實戰案例解析

PHP效能測試工具xhprof實戰案例解析

php中世界最好的语言
php中世界最好的语言原創
2018-05-16 11:45:552762瀏覽

這次帶給大家PHP效能測試工具xhprof實戰案例解析,PHP效能測試工具xhprof實戰案例解析的注意事項有哪些,以下就是實戰案例,一起來看一下。

xhprof概述:

XHProf是一個分層PHP效能分析工具。它會報告函數層級的請求次數和各種指標,包括阻塞時間,CPU時間和記憶體使用量。函數的開銷,可細分成呼叫者和被呼叫者的開銷,XHProf資料收集階段,它記錄呼叫次數的追蹤和包容性的指標弧在動態callgraph的一個程式。它獨有的資料計算的報告/後處理階段。在資料收集時,XHProfd透過檢測循環來處理遞歸的函數調用,並透過給遞歸調用中每個深度的調用一個有用的命名來避開死循環。 XHProf分析報告有助於理解被執行的程式碼的結構,它有一個簡單的HTML的使用者介面( PHP寫成的)。以瀏覽器為基礎的效能分析使用者介面能更容易查看,或是與同儕分享成果。也能繪製呼叫關係圖。

安裝與使用:

最近要做網站的效能對比,於是就找一款效能測試工作來玩玩,工具很多,但相比之前還是覺得xhprof的安裝和使用相對來說簡單點,數據分析也都還可以,下面就說說它的安裝和使用。 。 。

編譯安裝xhprof

cd xhprof-0.9.4/xhprof-0.9.4/extension/
phpize
./configure
make
sudo make install

將產生的xhprof.so檔案加入php.ini檔案中,然後重啟apache了

...
#这里要使用相对路径加载的话首先要看一下extension_dir配置的路径,或者直接写上`.so`文件的绝对能够路径即可。。。
extension=xhprof.so
...
sudo apachectl restart
##测试扩展是否安装成功,有如下输出则ok
php --ri xhprof
...
 xhprof
 xhprof => 0.9.2
 CPU num => 4
...

安裝graphviz

cd graphviz-2.38.0/
#后面参数是要确保安装了libphp才行哦【没安装的 brew install linpng 就可】
./configure --with-png=yes
make
sudo make install

測試了

在之前下載的xhprof資料夾裡面,找到xhprof_html,xhprof_lib、sample三個資料夾,那這三個資料夾放到你可以訪問到得地方去,然後透過連線先訪問以下http://xxxx/sample/sample.php,在造訪以下http://xxxx/xhprof_html/,就會看到有一筆記錄,點擊後就可以看到分析結果頁面,透過點擊View Full CallGraph連結到圖形報表的頁面。

如何使用

假設你現在要看看看自己做的一個網站的首頁表現數據,那麼你要找到這個網站的首頁入口檔案,在核心檔案載入之前和之後分別加上xhprof的效能測試程式碼

#开启,具体参数说明可以查看官方文档
xhprof_enable(XHPROF_FLAGS_NO_BUILTINS | XHPROF_FLAGS_CPU | XHPROF_FLAGS_MEMORY);
#核心文件的执行
...
require 'index.php'
...
#关闭
$xhprof_data = xhprof_disable();
#这里的路径根据自己的站点来配置
$XHPROF_ROOT = realpath(dirname(FILE) .'/');
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();
$run_id = $xhprof_runs->save_run($xhprof_data, "xhprof");
#这里打印出本次测试的id,方便到报表列表页面【http://xxxx/xhprof_html/】去通过对应的id找到对应的结果
var_dump($run_id);

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

PHP實作隨機剔除演算法

#Yii2框架資料驗證使用詳解

以上是PHP效能測試工具xhprof實戰案例解析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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