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