每個程序開發者在實際開發過程中都會遇到種種問題,但卻不知道具體發生了什麼問題,也不知道這些問題爲何會發生。大多數時候可能是邏輯或數據的問題,這些問題通常難以解決,而調試是一種找出症 結所在並解決它們的手段。同樣地,我們經常需要弄清楚一個腳本程序消耗了多少資源,包括內存消耗、 CPU以及執行時間。
本章主要包括以下內容:
- Xdebug
- 使用Sublime Text 3調試
- 使用Eclipse調試
- 使用Xdebug
- 分析 PHP DebugBar
Xdebug
Xdebug是一種PHP擴展,爲PHP腳本提供了調試和分析信息。
- 官方 xdebug 下載地址,需要仔細分析和選擇要下載的對應版本,否則無法調試。
- 可以在 https://xdebug.org/wizard.php 表單中輸入複製的 phpinfo() 內容從而找到對應版本。
- 下載對於版本的 xdebug-xxx.dll 到 php 擴展文件目錄,如 D:\xampp\php\ext。
- 編輯 php.ini :zend_extension = D:\xampp\php\ext\xdebug-xxx.dll。
- 查看
phpinfo() 檢查 Xdebug 是否啓動。
使用Sublime Text調試
Sublime Text 編輯器中有一種插件可以用來調試 PHP 代碼。但需要安裝 Sublime Text 的 xdebug 插件。略。
使用Eclipse調試
Eclipse 幾乎支持所有的主流編程語言,包括 PHP。使用 Eclipse 調試需要開啓配置。略。
使用Xdebug分析
通過分析,我們能獲取應用中每個運行腳本和任務的開銷信息。分析可以幫助我們瞭解一項任務花費 了多長時間,據此可以優化代碼,減少時間開銷。
Xdebug提供了分析器,但分析器默認是關閉的。打開並編輯配置文件,輸入下面兩行配置,即可開啓分析器:
;開啓分析器
xdebug.profiler_enable = On
;指定分析器存放輸出文件的目錄
;xdebug.profiler_output_dir = "D:\xdebug\profiler"
在瀏覽器中打開應用,地址中加上 ?XDEBUG_PROFILE=on 參數,如:http://127.0.0.1/test?XDEBUG_PROFILE=on,當頁面加載完畢後,在我們指定的目錄中將會生成一個cachegrind文件。用文本編輯器打開它會看到一 些文本數據。
cachegrind文件可以用許多工具打開。在Windows上可以用WinCacheGrind。對於Mac則 可以使用qcachegrind。
PHP DebugBar
PHP DebugBar 是另一款性能很好的工具,在它的頁面底部有一個美觀、全面的調試信息條。該信息條能顯示爲了調試而添加的自定義消息以及完整的請求信息,包括$_COOKIE、$_SERVER、$_POST、 $_GET數組等。除此之外,PHP DebugBar還能顯示出現的異常詳情、數據庫查詢詳情。而且,它能顯示腳本佔用的內存和頁面加載的時長。
完整討論PHP DebugBar在本書中是不現實的,所以這裏只進行一個簡單的介紹。有許多 關於PHP DebugBar的很棒的文檔提供了全面的細節信息和例子,獲取地址是 http://phpdebugbar. com/docs/readme.html。
參考:《高性能PHP7,Learning PHP7 High Performance》