你知道怎樣檢視xdebug
profile檔案嗎?如何你不知道的話。
Wincachegrind
Wincachegrind是Windows下的profile檢視程式,使用起來感覺還不錯,profile檔案太大的話偶爾會崩潰。
今天在高春輝的部落格上看到這些:
最近又開始拿
Xdebug 和 wincachegrind 對專案的 PHP 程式碼進行分析和優化,但是發現和自己輸出的執行時間總是相差十倍,差的不是零頭,而是十倍。
上網搜尋了一下,原來在
Xdebug 2.0.0RC4 版本開始,對 profiler 日誌中的時間單位進行了修改。
(“Use
μ seconds instead of a tenths of μ seconds to avoid confusion in profile
information. ”)
而
wincachegrind 又不再升級維護了,所以凡是用 2.0.0RC4 以及之後版本的 Xdebug 輸出的 profiler 日誌用
wincachegrind 來分析的話,都會有十倍的時間差距。
他已經提供了hack後的版本,可以解決時間差距的問題,有興趣的同學可以試試。
CachegrindVisualizer
CachegrindVisualizer是一個xdebug的profile檔案檢視客戶端,採用Adobe的AIR製作。
更詳細的介紹可以看以前寫的關於CachegrindVisualizer的介紹。
Kcachegrind
Kcachegrind是Linux下的一個圖形化profile檢視工具,功能很強勁。
Callgrind
uses runtime instrumentation via the Valgrind Framework for its cache simulation
and call-graph generation. This way, even shared libraries and dynamically
opened plugins can be profiled. The data files generated by Callgrind can be
loaded into KCachegrind for browsing the performance results.
Webgrind
webgrind和wincachegrind的功能差不多,但是webgrind是基於web的,採用php寫的檢視工具。看了一下程式碼,跑在linux的伺服器比較好。
Webgrind
is an Xdebug profiling web frontend in PHP5. It implements only a minimal subset
of the features of kcachegrind, but installs in seconds and works on all
platforms. For quick’n'dirty optimizations it does the job. 在優化PHP程式碼執行效率過程中,有個好辦法是利用xdebug生成profile檔案,然後檢視整個程式的瓶頸在哪裡。現在xdebug
profile的檢視程式有好幾個,在這裡羅列一下。