溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP性能檢測(cè)擴(kuò)展——XHProf

發(fā)布時(shí)間:2020-07-25 09:02:48 來源:網(wǎng)絡(luò) 閱讀:273 作者:shenliyang 欄目:web開發(fā)
引言:XHProf是facebook開源出來的一個(gè)php輕量級(jí)的性能分析工具,跟Xdebug類似,但性能開銷更低,還可以用在生產(chǎn)環(huán)境中,也可以由程序開 關(guān)來控制是否進(jìn)行profile。

安裝xhprof
wget http://pecl.php.net/get/xhprof-0.9.2.tgz
tar zxf xhprof-0.9.2.tgz
cd xhprof-0.9.2
cp -r xhprof_html xhprof_lib /www/www.hx.com/xhprof/
cd extension/
/usr/local/webserver/php/bin/phpize
./configure  –with-php-config=/usr/local/webserver/php/bin/php-config
make && make install
安裝完提示:
Installing shared extensions:     /usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/

php.ini中添加
extension_dir = "/usr/local/webserver/php/lib/php/extensions/no-debug-non-zts-20060613/"
這句我原來就有了,就這用添加下面兩句
extension=xhprof.so
xhprof.output_dir=/www/logs/xhprof

分析日志輸出在/www/logs/xhprof目錄。

重新加載php配置文件和重啟web
/usr/local/webserver/php/sbin/php-fpm reload
/usr/local/webserver/nginx/sbin/nginx -s reload

刷新phpinfo頁面,看到輸出中有了xhprof信息。
xhprof  0.9.2
CPU num  2

安裝graphviz,一個(gè)畫圖工具
wget http://www.graphviz.org/pub/graphviz/stable/SOURCES/graphviz-2.24.0.tar.gz
tar zxf graphviz-2.24.0.tar.gz
cd graphviz-2.24.0
./configure
make && make install

程序試?yán)?/strong>
頭部:
xhprof_enable(); 
//xhprof_enable(XHPROF_FLAGS_NO_BUILTINS); 不記錄內(nèi)置的函數(shù)
//xhprof_enable(XHPROF_FLAGS_CPU + XHPROF_FLAGS_MEMORY);  同時(shí)分析CPU和Mem的開銷
$xhprof_on = true;

我覺得用xhprof_enable();就夠用了,只統(tǒng)計(jì)運(yùn)行時(shí)間(Wall Time)。

生產(chǎn)環(huán)境可使用:
if (mt_rand(1, 10000) == 1) {
   xhprof_enable();
   $xhprof_on = true;
}

尾部:
if($xhprof_on){
$xhprof_data = xhprof_disable();
$xhprof_root = '/www/www.hx.com/xhprof/';
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, "hx");
echo '<a href="http://192.168.1.158:858/xhprof/xhprof_html/index.php?run='.$run_id.'&source=hx" target="_blank">統(tǒng)計(jì)';
}

運(yùn)行程序,底部出現(xiàn)統(tǒng)計(jì)字樣,點(diǎn)過去就可以看到性能分析了。按運(yùn)行時(shí)間排序,很容易找出化時(shí)間最長(zhǎng)的函數(shù)。
點(diǎn)[View Full Callgraph]圖形化顯示,最大的性能問題會(huì)用紅色標(biāo)出,其次是×××,很明顯。
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI