体验XHProf(linux版本)
生活随笔
收集整理的這篇文章主要介紹了
体验XHProf(linux版本)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
調(diào)試PHP時(shí),XDebug一直是大眾的不二選擇,搭配上Webgrind,可以獲得不錯(cuò)的效果。今天看某人的棲息地里的介紹,才發(fā)現(xiàn)了XHProf,于是體驗(yàn)了一下,感覺(jué)很酷,與XDebug相比,運(yùn)行更輕便(本身還包括一個(gè)web查看工具),表現(xiàn)更易懂,下面記錄一下體驗(yàn)過(guò)程。?
1.安裝XHProf?
2 . 配置php.ini ?
Php.ini代碼
重啟服務(wù)讓修改生效,現(xiàn)在就可以使用XHProf了,不過(guò)為了顯示效果更炫,最好繼續(xù)安裝Graphviz。?
3. 安裝Graphviz ?
Command代碼
安裝Graphviz的目的是為了xhprof圖形化web工具查看profiling log文件。安裝后使用web工具查看log圖形時(shí),最常見(jiàn)錯(cuò)誤是:?
提示如下:?
引用 Error: either we can not find profile data for run_id 4d7f0bd99a12f or the threshold 0.01 is too small or you do not have ‘dot’ image generation utility installed.
且編譯graphviz提示信息png: No (missing png.h),也就是dot 不支持PNG,所以需要安裝libpng包,如:?
Linux代碼
然后重新編譯安裝graphviz,加上參數(shù)--with-png=yes。完成后,應(yīng)確保命令dot在PATH環(huán)境變量里(默認(rèn)應(yīng)該就在路徑里,一般不需要特別設(shè)置),以便XHProf能找到它。?
使用XHProf ?
在你要監(jiān)測(cè)的Php代碼頭尾部分別加入代碼xhprof_enable()和xhprof_disable()?
Php代碼
如此一來(lái),會(huì)在上面設(shè)定的xhprof.output_dir目錄里生成名字類(lèi)似49bafaa3a3f66.xhprof_foo的數(shù)據(jù)文件,可以很方便的通過(guò)Web方式瀏覽效果:?
http://<xhprof-ui-address>/index.php?run=49bafaa3a3f66&source=xhprof_foo?
目前顯示的是表格形式的顯示,點(diǎn)擊頁(yè)面上的[View Full Callgraph],就能看到精美的圖片顯示了。看看下面的screenshot.?
結(jié)果分析?
引用
主要指標(biāo):
Inclusive Time (或子樹(shù)時(shí)間):包括子函數(shù)所有執(zhí)行時(shí)間。
Exclusive Time/Self Time:函數(shù)執(zhí)行本身花費(fèi)的時(shí)間,不包括子樹(shù)執(zhí)行時(shí)間。
Wall時(shí)間:花去了的時(shí)間或掛鐘時(shí)間。
CPU時(shí)間:用戶耗的時(shí)間+內(nèi)核耗的時(shí)間
# 如果xhprof_enable函數(shù)寫(xiě)作:xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY)可以輸出更多指標(biāo)。
Function Name 函數(shù)名
Calls 調(diào)用次數(shù)
Calls% 調(diào)用百分比
# 消耗時(shí)間
Incl. Wall Time (microsec) 調(diào)用的包括子函數(shù)所有花費(fèi)時(shí)間 以微秒算(一百萬(wàn)分之一秒)
IWall% 調(diào)用的包括子函數(shù)所有花費(fèi)時(shí)間的百分比
Excl. Wall Time (microsec) 函數(shù)執(zhí)行本身花費(fèi)的時(shí)間,不包括子樹(shù)執(zhí)行時(shí)間,以微秒算(一百萬(wàn)分之一秒)
EWall% 函數(shù)執(zhí)行本身花費(fèi)的時(shí)間的百分比,不包括子樹(shù)執(zhí)行時(shí)間
# 消耗CPU
Incl. CPU(microsecs) 調(diào)用的包括子函數(shù)所有花費(fèi)的cpu時(shí)間。減Incl. Wall Time即為等待cpu的時(shí)間
ICpu% Incl. CPU(microsecs)的百分比
Excl. CPU(microsec) 函數(shù)執(zhí)行本身花費(fèi)的cpu時(shí)間,不包括子樹(shù)執(zhí)行時(shí)間,以微秒算(一百萬(wàn)分之一秒)。
ECPU% Excl. CPU(microsec)的百分比
# 消耗內(nèi)存
Incl.MemUse(bytes) 包括子函數(shù)執(zhí)行使用的內(nèi)存。
IMemUse% Incl.MemUse(bytes)的百分比
Excl.MemUse(bytes) 函數(shù)執(zhí)行本身內(nèi)存,以字節(jié)算
EMemUse% Excl.MemUse(bytes)的百分比
# 消耗內(nèi)存峰值
Incl.PeakMemUse(bytes) Incl.MemUse的峰值
IPeakMemUse% Incl.PeakMemUse(bytes) 的峰值百分比
Excl.PeakMemUse(bytes) Excl.MemUse的峰值
EPeakMemUse% EMemUse% 峰值百分比
來(lái)源:http://koda.iteye.com/blog/463891
總結(jié)
以上是生活随笔為你收集整理的体验XHProf(linux版本)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 大型网站技术架构小结
- 下一篇: xhprof安装和使用方法(linux版