摘要:它報(bào)告函數(shù)級(jí)別的請(qǐng)求次數(shù)和各種指標(biāo),包括阻塞時(shí)間,時(shí)間和內(nèi)存使用情況。它獨(dú)有的數(shù)據(jù)計(jì)算的報(bào)告后處理階段。在數(shù)據(jù)收集時(shí),通過檢測(cè)循環(huán)來(lái)處理遞歸的函數(shù)調(diào)用,并通過給遞歸調(diào)用中每個(gè)深度的調(diào)用一個(gè)有用的命名來(lái)避開死循環(huán)。
簡(jiǎn)介
XHProf是一個(gè)分層PHP性能分析工具。
XHProf是一個(gè)分層PHP性能分析工具。它報(bào)告函數(shù)級(jí)別的請(qǐng)求次數(shù)和各種指標(biāo),包括阻塞時(shí)間,CPU時(shí)間和內(nèi)存使用情況。一個(gè)函數(shù)的開銷,可細(xì)分成調(diào)用者和被調(diào)用者的開銷,XHProf數(shù)據(jù)收集階段,它記錄調(diào)用次數(shù)的追蹤和包容性的指標(biāo)弧在動(dòng)態(tài)callgraph的一個(gè)程序。它獨(dú)有的數(shù)據(jù)計(jì)算的報(bào)告/后處理階段。在數(shù)據(jù)收集時(shí),XHProfd通過檢測(cè)循環(huán)來(lái)處理遞歸的函數(shù)調(diào)用,并通過給遞歸調(diào)用中每個(gè)深度的調(diào)用一個(gè)有用的命名來(lái)避開死循環(huán)。XHProf分析報(bào)告有助于理解被執(zhí)行的代碼的結(jié)構(gòu),它有一個(gè)簡(jiǎn)單的HTML的用戶界面( PHP寫成的)?;跒g覽器的性能分析用戶界面能更容易查看,或是與同行們分享成果。也能繪制調(diào)用關(guān)系圖。(來(lái)自百度百科)
我的PHP版本是PHP7:
而xhprof支持PHP7的庫(kù)請(qǐng)?jiān)趌ongxinH-xhprof查看。
備注:我之前在phacility克隆的,不過安裝失敗,原因就是我的PHP版本是PHP7,而phacility版本的并不支持。(采坑呢~~)
安裝步驟當(dāng)做一個(gè)php項(xiàng)目!clone別人php代碼放哪個(gè)目錄你自己定
1.編譯安裝
cd /Users/birjemin/Developer/Php git clone https://github.com/longxinH/xhprof cd xhprof/extension phpize ./configure make make install
2.配置文件
cd /usr/local/etc/php/7.0/conf.d vim ext-xhprof.ini
添加內(nèi)容(這個(gè)就是編譯成功之后的路徑,見上圖)
[xhprof] extension="/usr/local/Cellar/php70/7.0.14_7/lib/php/extensions/no-debug-non-zts-20151012/xhprof.so"
3.重啟php-fpm(視個(gè)人重啟方式而定,我的重啟方式是這樣的)
cd /usr/local/etc/php/7.0/ sudo killall php-fpm sudo /usr/local/Cellar/php70/7.0.14_7/sbin/php-fpm -D
4.查看是否安裝成功
恭喜安裝成功!
使用步驟1.如果使用呢??jī)煞N方法,第一種就是把xhprof_lib.php和xhprof_runs.php拷貝到項(xiàng)目中,第二種就是用絕對(duì)路徑引入這兩個(gè)文件,推薦第一種,這樣別人clone的你的項(xiàng)目,不需要做啥。
2.建立兩個(gè)開啟函數(shù)(isDev()是判斷本地環(huán)境的意思,請(qǐng)視情況刪除)
開啟xhprof
function enableXhprof() { isDev() && xhprof_enable(0, []); }
運(yùn)行xhprof(xhprof_lib.php和xhprof_runs.php可以拷貝到項(xiàng)目的,請(qǐng)確保include_once請(qǐng)夠加載這兩個(gè)文件)。
function disableXhprof() { if (isDev()) { $xhprof_data = xhprof_disable(); include_once app_path() . "/xhprof_lib.php"; include_once app_path() . "/xhprof_runs.php"; $xhprof_runs = new XHProfRuns_Default(); $run_id = $xhprof_runs->save_run($xhprof_data, "xhprof_foo"); #echo $run_id; } }
3.可以在需要監(jiān)聽的接口中代碼片段前面加上enableXhprof(),后面加上disableXhprof()就好了。接下來(lái)就可以分析這段代碼了。(請(qǐng)確保這兩個(gè)函數(shù)全局訪問)
4.將克隆的xprof配置虛擬主機(jī),這個(gè)和你的項(xiàng)目一樣的,就把xprof也當(dāng)做一個(gè)項(xiàng)目,配置成瀏覽器可訪問。比如我的配置:
host: 127.0.0.1 local.xhprof.com
nginx server conf
server { listen 80; server_name local.xhprof.com; access_log logs/xhprof.access.log main; autoindex on; location / { root /Users/birjemin/Developer/Php/xhprof; index index.html index.htm index.php; try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { root /Users/birjemin/Developer/Php/xhprof; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; include fastcgi_params; } }
5.重啟nginx,瀏覽器訪問local.xhprof.com看看能不能訪問(沒有目錄??你是不是瀏覽器無(wú)法訪問目錄??權(quán)限沒開。。自己配置一下)
6.在postman或者瀏覽器訪問接口,轉(zhuǎn)啊轉(zhuǎn),好了之后就可以去
http://local.xhprof.com/xhprof_html/查看了。(圖我就不截了。。下次講一下xgui的使用)
1.php -v的版本和phpinfo()的版本不一致,如下圖:
解決方法:更改php cli的默認(rèn)版本
我用的是bash
vim .bash_profile
添加兩行
# PHP -v export PATH="/usr/local/Cellar/php70/7.0.14_7/bin:$PATH"
生效
source .bash_profile
2.編譯成功,但是php -m 沒有 xhprof。
xhprof支持PHP7的庫(kù)請(qǐng)?jiān)趌ongxinH-xhprof查看?。。?!
備注全程經(jīng)歷了2.5h吧~~~不過文章也寫了2.5h。哈哈哈哈~這個(gè)東西和xdebug不一樣的,這個(gè)是分析性能瓶頸的,可以讓你優(yōu)化代碼。xdebug主要用于調(diào)試,我下次寫一個(gè)xdebug安裝的過程。
參考https://www.jianshu.com/p/38e3ae81970c
https://juejin.im/post/5860d23f128fe10069e1cfbf
http://blog.csdn.net/qq_28602957/article/details/72697901
https://baike.baidu.com/item/xhprof/2513363?fr=aladdin
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/28279.html
摘要:輸出的性能數(shù)據(jù)中添加數(shù)據(jù)。中間是要分析的代碼。是一個(gè)繪制圖形的工具,可以更為直觀的讓你查看性能的瓶頸。這樣所有使用該環(huán)境的都會(huì)生效。這樣僅該項(xiàng)目生效。 安裝xhprof擴(kuò)展 wget http://pecl.php.net/get/xhprof-0.9.4.tgz tar zxf xhprof-0.9.4.tgz cd xhprof-0.9.4/extension/ sudo phpi...
摘要:是開發(fā)的一個(gè)測(cè)試性能的擴(kuò)展,本文記錄了在應(yīng)用中使用對(duì)進(jìn)行性能優(yōu)化,查找性能瓶頸的方法。函數(shù)用于停止性能分析,并返回分析的數(shù)據(jù)。該參數(shù)用于為剖析結(jié)果添加額外的信息,該參數(shù)的值使用以下宏,如果需要提供多個(gè)值,使用進(jìn)行分隔。 XHProf是facebook 開發(fā)的一個(gè)測(cè)試php性能的擴(kuò)展,本文記錄了在PHP應(yīng)用中使用XHProf對(duì)PHP進(jìn)行性能優(yōu)化,查找性能瓶頸的方法。 安裝Xhprof擴(kuò)展...
摘要:最近要做網(wǎng)站的性能對(duì)比,于是就找一款性能測(cè)試工作來(lái)玩玩,工具很多,但相比之前還是覺得的安裝和使用相對(duì)來(lái)說簡(jiǎn)單點(diǎn),數(shù)據(jù)分析也都還可以,下面就說說它的安裝和使用。。。 最近要做網(wǎng)站的性能對(duì)比,于是就找一款性能測(cè)試工作來(lái)玩玩,工具很多,但相比之前還是覺得xhprof的安裝和使用相對(duì)來(lái)說簡(jiǎn)單點(diǎn),數(shù)據(jù)分析也都還可以,下面就說說它的安裝和使用。。。 下載xhprof和graphviz ...
摘要:什么是開源的輕量級(jí)性能分析工具。它報(bào)告函數(shù)級(jí)別的請(qǐng)求次數(shù)和各種指標(biāo),包括阻塞時(shí)間,時(shí)間和內(nèi)存使用情況。基于瀏覽器的性能分析用戶界面能更容易查看,或是與同行們分享成果。對(duì)于本地開發(fā)環(huán)境來(lái)說,進(jìn)行性能分析是夠用了。 什么是 XHPROF? XHPROF:Facebook 開源的輕量級(jí)PHP性能分析工具。 它報(bào)告函數(shù)級(jí)別的請(qǐng)求次數(shù)和各種指標(biāo),包括阻塞時(shí)間,CPU時(shí)間和內(nèi)存使用情況。 XHPr...
摘要:重啟啟動(dòng)項(xiàng)目中配置啟動(dòng)性能分析器需要測(cè)試的內(nèi)容停止性能分析器根據(jù)自己安裝的寫的路徑 整個(gè)過程部署laravel與xhprof安裝 前提成功安裝了LNMP集成環(huán)境 (lnmp.org 即可快速安裝),保證network正常運(yùn)行 首先配置laravel的運(yùn)行環(huán)境 1.上傳代碼到/home/wwwroot/default/2.修改nginx配置文件的root以及rewrite配置 #root...
摘要:重啟啟動(dòng)項(xiàng)目中配置啟動(dòng)性能分析器需要測(cè)試的內(nèi)容停止性能分析器根據(jù)自己安裝的寫的路徑 整個(gè)過程部署laravel與xhprof安裝 前提成功安裝了LNMP集成環(huán)境 (lnmp.org 即可快速安裝),保證network正常運(yùn)行 首先配置laravel的運(yùn)行環(huán)境 1.上傳代碼到/home/wwwroot/default/2.修改nginx配置文件的root以及rewrite配置 #root...
閱讀 3754·2021-10-11 10:58
閱讀 2299·2021-10-08 10:05
閱讀 2121·2021-09-27 13:34
閱讀 3638·2019-08-30 15:53
閱讀 2787·2019-08-30 14:02
閱讀 3619·2019-08-29 16:55
閱讀 697·2019-08-29 15:41
閱讀 1229·2019-08-29 15:23