日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

使用xdebug分析thinkphp框架函数调用图

發(fā)布時間:2023/11/27 生活经验 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用xdebug分析thinkphp框架函数调用图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

開發(fā)中需要性能調(diào)優(yōu),使用xdebug分析thinkphp框架函數(shù)調(diào)用圖。

?

關于xdebug的安裝參考這2篇

NetBeans配置Xdebug 遠程調(diào)試PHP

php擴展xdebug安裝以及用kcachegrind系統(tǒng)分析

?

1.安裝xdebug

需要先去http://www.xdebug.org看看一些文檔,xdebug作為php擴展安裝

#?http://www.xdebug.org/files/xdebug-2.3.3.tgz

# tar -xzf xdebug-2.3.3.tgz
# cd xdebug-2.3.3
# /usr/local/php/bin/phpize
# ./configure --enable-xdebug --with-php-config=/usr/local/php/bin/php-config
# make && make install

?

2.給權限

# mkdir -p /tmp/xdebug
# chmod 755 /tmp/xdebug?

# chown nobody:nobody /tmp/xdebug

?

3.修改php配置

修改php.ini文件

[Xdebug]
zend_extension="xdebug.so"
xdebug.profiler_enable=on
xdebug.trace_output_dir="/tmp/xdebug"
xdebug.profiler_output_dir="/tmp/xdebug"

?

4.重啟php-fpm

#?killall php-fpm

#? /etc/init.d/php-fpm

?

5.運行PHP產(chǎn)生日志

?配置好之后,運行php文件就會在/tmp/xdebug下生成類似這樣的日志文件

-rw-r--r-- 1 nobody nobody 4615252 Oct 27 17:31 cachegrind.out.29293

?

6.使用kcachegrind圖形化分析日志

windows port of kcachegrind

下載地址:http://sourceforge.net/projects/precompiledbin/?source=typ_redirect

?

?

?

每一步函數(shù)調(diào)用看的很清晰:

?

?

?

問題最嚴重就是出在execute,其實也就是大量的SQl查詢。called就是函數(shù)調(diào)用次數(shù)。

?

優(yōu)化辦法很多,使用memcached或者直接使用thinkphp自帶的各自緩存,這個是優(yōu)化后的圖,明顯看出called少了。

?

查詢緩存
http://document.thinkphp.cn/manual_3_2.html#query_cache
對于及時性要求不高的數(shù)據(jù)查詢,我們可以使用查詢緩存功能來提高性能,而且無需自己使用緩存方法進行緩存和獲取。

查詢緩存功能支持所有的數(shù)據(jù)庫,并且支持所有的緩存方式和有效期。

在使用查詢緩存的時候,只需要調(diào)用Model類的cache方法,例如:
1.$Model->cache(true)->where('status=1')->select();


SQL解析緩存
http://document.thinkphp.cn/manual_3_2.html#sql_build_cache
除了查詢緩存之外,ThinkPHP還支持SQL解析緩存,因為ThinkPHP的ORM機制,所有的SQL都是動態(tài)生成的,然后由數(shù)據(jù)庫驅(qū)動執(zhí)行。

所以如果你的應用有大量的SQL查詢需求,那么可以開啟SQL解析緩存以減少SQL解析提高性能。要開啟SQL解析緩存,只需要設置:
1.'DB_SQL_BUILD_CACHE' => true,
即可開啟數(shù)據(jù)庫查詢的SQL創(chuàng)建緩存,默認緩存方式為文件方式,還可以支持xcache和apc方式緩存,只需要設置:
1.'DB_SQL_BUILD_QUEUE' => 'xcache',
我們知道,一個項目的查詢SQL的量可能會非常巨大,所以有必要設置下緩存的隊列長度,例如,我們希望SQL解析緩存不超過20條記錄,可以設置:
1.'DB_SQL_BUILD_LENGTH' => 20, // SQL緩存的隊列長度。

?

How profilers lie: the cases of gprof and KCachegrind

?

為 PHP 應用提速、提速、再提速!,第 2 部分: 分析 PHP 應用程序以查找、診斷和加速運行緩慢的代碼

?

?

?

?

?

?

總結

以上是生活随笔為你收集整理的使用xdebug分析thinkphp框架函数调用图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。