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