摘要:生成性能分析文件,再通過分析軟件進(jìn)行查看性能結(jié)果。性能分析工具詳解我們通過打開性能分析文件打頭的文件。可以很好的區(qū)分性能分析文件。
介紹
在上兩期中我已經(jīng)對 xdebug 最核心的操作已經(jīng)進(jìn)行了講解。相信你可以擺脫寫 var_dump($data);die; 的編寫和完成調(diào)試后的清除了。這一期我們來學(xué)習(xí)xdebug的第二個(gè)特色-性能分析。這一個(gè)功能,在實(shí)操中用的不是很多。
使用場景:
高并發(fā)項(xiàng)目的核心功能優(yōu)化。通過查看運(yùn)行一個(gè)方法經(jīng)過的依賴耗時(shí)情況,進(jìn)行代碼優(yōu)化。
環(huán)境說明windows
vagrant+vbox+centos7+nginx+php
phpstorm
學(xué)前準(zhǔn)備xdebug + phpstorm 調(diào)試環(huán)境已經(jīng)可以正常運(yùn)行
學(xué)習(xí)點(diǎn)明白 xdebug 性能分析需要做那些配置
知道怎么去看性能報(bào)告
xdebug 配置xdebug 是通過訪問指定方法。生成性能分析文件,再通過分析軟件進(jìn)行查看性能結(jié)果。
php.ini 添加配置
xdebug.profiler_enable=Off xdebug.profiler_enable_trigger=On xdebug.profiler_enable_trigger_value="create" xdebug.profiler_output_dir="/tmp/" xdebug.profiler_output_name="cachegrind.out.%R"phpstorm 分析性能文件
比較建議一個(gè)方法訪問完后,生成分析文件,馬上進(jìn)行性能分析,分析完后再清除文件。為了數(shù)據(jù)準(zhǔn)確性,我們還需要進(jìn)行多次對比。找性能參數(shù)的平均值來提高準(zhǔn)確性。
我們得知道那個(gè)依賴方法耗時(shí)最久,是什么原因。有沒有優(yōu)化的可能。
phpstorm xdebug 性能分析工具詳解我們通過 tool -> Analyze Xdebug profiler Snapshot 打開性能分析文件 cachegrind.out. 打頭的文件。就會進(jìn)入以下界面
1、了解各個(gè)選項(xiàng)的意思
Refresh - 刷新
Execution statistics - 執(zhí)行統(tǒng)計(jì)數(shù)據(jù)
Call Trees - 哪個(gè)函數(shù)調(diào)用哪個(gè)函數(shù)
Callable - 已執(zhí)行的文件
Own Time - 函數(shù)執(zhí)行自己的代碼所花費(fèi)的時(shí)間(不包括對其他函數(shù)的調(diào)用)
Calls - 調(diào)用次數(shù)
Callees - 調(diào)用哪些函數(shù)
Callers - 從函數(shù)被調(diào)用的地方
time 前的數(shù)字代表的是什么意思
time 列里有 數(shù)字和百分比。分別代表 執(zhí)行時(shí)間和執(zhí)行占用總時(shí)間百分比
單位是 server 旁邊的 time 那里進(jìn)行設(shè)置.默認(rèn)是 ms
callees 里的方法大部分都會出來一個(gè)折疊的圖標(biāo),有什么用
這個(gè)可以讓我們查看他的上一步執(zhí)行了以什么操作。這個(gè)可以方便我們在了解調(diào)用到這個(gè)函數(shù)的過程。
2、找到我們關(guān)心的數(shù)據(jù)
那些地方占用的執(zhí)行時(shí)間最多,為什么
我們可以在 Execution statistics 標(biāo)簽里對 own time 進(jìn)行排序取執(zhí)行占用最多的內(nèi)容。里面會包含文件和函數(shù)以及方法。如果我們設(shè)置了 server 關(guān)聯(lián)當(dāng)前的項(xiàng)目,統(tǒng)計(jì)里的方法是可以進(jìn)行跳轉(zhuǎn)到項(xiàng)目的實(shí)際代碼里。
我們通過 Callees 標(biāo)簽查看函數(shù)里那些方法調(diào)用耗時(shí)最多
那些方法調(diào)用最多次,在那些地方調(diào)用的比較多
Execution statistics 標(biāo)簽里對 calls 進(jìn)行排序取執(zhí)行次數(shù)最多的函數(shù)或方法。
可通過下面的 Callers 查看那些地方對他進(jìn)行了調(diào)用
系列文章xdebug的安裝配置
xdebug的實(shí)際運(yùn)用
xdebug性能分析 [本篇]
FQA為什么要設(shè)置 xdebug.profiler_output_name 默認(rèn)的不就可以了嗎?
如果你的項(xiàng)目不是多入口的類型,你保存的到一個(gè)文件就會出現(xiàn)性能分析文件不精確的情況。而我在上文中用的是 $_SERVER["REQUEST_URI"] 作為文件后綴??梢院芎玫膮^(qū)分性能分析文件。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/30884.html
摘要:當(dāng)我在官網(wǎng)看到了遠(yuǎn)程調(diào)試原理圖時(shí),我才知道應(yīng)該怎么配置。配置的參數(shù)也少了很多,也不需要在里對一個(gè)個(gè)請求地址進(jìn)行配置。其他可以配置可以共用。但是如果你使用的是本地的那他就會出現(xiàn)端口被占用的情況。 介紹 我之前配置直接按網(wǎng)上的文章進(jìn)行配置總是配置不成功,里面很多東西不了解。當(dāng)我在 xdebug 官網(wǎng)看到了 xdebug 遠(yuǎn)程調(diào)試原理圖時(shí),我才知道應(yīng)該怎么配置 xdebug。配置的參數(shù)也少了...
摘要:單擊此按鈕可暫停程序執(zhí)行。單擊此按鈕,通過標(biāo)準(zhǔn)關(guān)閉腳本從外部終止當(dāng)前進(jìn)程。實(shí)際上,插入符號處的當(dāng)前行有一個(gè)臨時(shí)斷點(diǎn)集,一旦程序執(zhí)行暫停,就會刪除它。心中始終十分抗拒,導(dǎo)致功能變更延期。 介紹 在 上一期 中我們已經(jīng)把 xdebug 和 phpstorm 的關(guān)聯(lián)配置設(shè)置好了,接下來我將會深入的介紹 debug 的運(yùn)用。分為3點(diǎn)內(nèi)容 快速找到錯(cuò)誤的原因 輔助讀懂比效復(fù)雜的代碼 代碼重構(gòu) ...
摘要:那些瑣碎的知識點(diǎn)作者記錄的的很奇特很難記的知識點(diǎn)。易錯(cuò)知識點(diǎn)整理注意和的區(qū)別中和都是輸出的作用,但是兩者之間還是有細(xì)微的差別。今天手頭不忙,總結(jié)一下,分享過程中掌握的知識點(diǎn)。 深入理解 PHP 之:Nginx 與 FPM 的工作機(jī)制 這篇文章從 Nginx 與 FPM 的工作機(jī)制出發(fā),探討配置背后的原理,讓我們真正理解 Nginx 與 PHP 是如何協(xié)同工作的。 PHP 那些瑣碎的知識...
摘要:接下來我們將會介紹一些可以快速實(shí)現(xiàn)的小技巧,讓你的代碼測試變得更快。該示例測試套件有意地模擬更廣泛的測試集合,并突出改進(jìn)的可行性。真實(shí)情況下,效率的提升可能有所差異。我認(rèn)為相比通過提升一點(diǎn)速度帶來的好處,保持生產(chǎn)環(huán)境一致更重要。 showImg(https://segmentfault.com/img/remote/1460000017962057?w=1440&h=736); 具備高...
摘要:快杰云主機(jī)發(fā)布款全新機(jī)型在去年大會上,云主機(jī)團(tuán)隊(duì)推出了萬網(wǎng)絡(luò)性能萬存儲性能的快杰云主機(jī)。但同時(shí)價(jià)格則與上一代快杰持平,升頻不加價(jià)。其中在的跑分中,快杰與上代快杰相比算力提升。除了上述三款性能主機(jī)外,上還發(fā)布了采用處理器的快杰型預(yù)覽版。10月23日以構(gòu)建·創(chuàng)見|為主題的UCloud用戶大會暨Think in Cloud 2020(以下簡稱TIC)在上海召開。在本次大會上,UCloud推出了歷經(jīng)...
閱讀 1280·2021-11-24 11:16
閱讀 3489·2021-11-15 11:38
閱讀 2018·2021-10-20 13:47
閱讀 609·2021-09-29 09:35
閱讀 2261·2021-09-22 15:17
閱讀 1085·2021-09-07 09:59
閱讀 3440·2019-08-30 13:21
閱讀 2958·2019-08-30 12:47