程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 使用xdebug調試PHP 找出PHP程序的瓶頸

使用xdebug調試PHP 找出PHP程序的瓶頸

編輯:關於PHP編程

xdebug是PHP的一個擴展應用,有了xdebug就可以輕松的調試PHP程序,有了它,我們就不用使用var_dump()print_r()之類的傻瓜調試函數了。
Xdebug則提供了更多的功能,能全方位的對PHP腳本進行調試。Xdebug主要的功能如下:

  1. 堆棧追蹤和函數追蹤;
  2. 錯誤信息;
  3. 內存分配;
  4. 剖析php腳本的信息;
  5. 代碼覆蓋率分析;
  6. 遠程調試分析;

1、Ubuntu搭建xdebug調試環境

安裝Xdebug模塊

在終端中使用apt-get安裝xdebug,命令如下

sudo apt-get install php5-dev php-pear
sudo apt-get install php5-xdebug

然後打開php.ini文件(例如gedit /etc/php5/apache2/php.ini)。進行如下配置;

;加載xdebug動態鏈接庫
extension=xdebug.so
;xdebug分析文件輸出路徑
xdebug.profiler_output_dir = “/var/www/xdebug/”
;分析器默認是關閉,調試的時候在url中加入XDEBUG_PROFILE=true即可
xdebug.profiler_enable = Off
xdebug.profiler_enable_trigger = 1

重啟apache,這樣就可以使用xdebug調試PHP了。

2、windows下安裝xdebug

以PHP5.1.4,Windows平台為例(其它PHP版本,其它平台請參看官網文檔):
1. 登錄www.xdebug.org,在首頁右側有一個Windows modules,選擇其中的PHP5.1.2+,下載php_xdebug-5.1.2-2.0.0beta6.dll文件;
2. 將下載的php_xdebug-5.1.2-2.0.0beta6.dll放到C:php5ext目錄,重命名為php_xdebug.dll;
3. 編輯php.ini,加入下面幾行:

extension=php_xdebug.dll
[Xdebug]
xdebug.profiler_enable=on
xdebug.trace_output_dir=”I:Projectsxdebug”
xdebug.profiler_output_dir=”I:Projectsxdebug”
xdebug.dump.GET=*
xdebug.show_local_vars=1

具體參數PHP.ini說明參見ubuntu下的注釋。

3、使用xdebug進行PHP調試

xdebug調試變量更加友好

Xdebug重寫了php裡面var_dump()函數。
xdebug裡的var_dump()給變量對象有不同的顏色,顯示類型長度,還可以控制顯示層次,顯示的方式經過格式化,清晰友好。
需要使用此功能,有如下參數需注意。

 

;是否覆蓋php裡面的函數var_dump();默認是開啟的,值為1;設為0,則關閉;
xdebug.overload_var_dump = 1
;控制數組子元素顯示的大小默認為256
xdebug.var_display_max_children = 256
;控制變量打印的大小,默認為512
xdebug.var_display_max_data = 512
;控制數組和對象元素顯示的層級。默認為3
xdebug.var_display_max_depth = 3

xdebug的堆棧追蹤功能

如果腳本中出現函數參數不正確,方法重復,語法錯誤等錯誤的時候。xdebug能追蹤其錯誤產生的產生的過程。

參數配置請參考http://xdebug.com/docs/stack_trace;一般來說,很少需要配置。

4、使用xdebug進行腳本性能測試

在php.ini做如下配置

;默認為0,不開啟xdebug調試器;
xdebug.profiler_enable = 0
;默認為0;這裡設為1,可以通過XDEBUG_PROFILE參數通過GET/POST傳遞
xdebug.profiler_enable_trigger = 1

測試性能結果查看工具

測試完畢後,我們需要查看下測試結果,從而找到PHP的瓶頸。
這裡推薦使用兩款查看工具,ubuntu下可以使用KCachegrind,windows下可以使用WinCacheGrind。具體查看xdebug測試結果工具使用方法自己谷歌,很簡單。懂點E文就可以看懂的。

5、xdebug使用注意及相關參數說明

xdebug使用注意

如果您在 phpinfo() 的輸出中沒有看到 Xdebug 部分,則 Xdebug 裝入失敗。Apache 錯誤日志會列出原因。常見錯誤包括 zend_extension 的路徑錯誤或者與其他擴展發生沖突。例如,如果需要使用 XCache 和 Xdebug,一定要先裝入 XCache。但是,由於 Xdebug 適於在開發時使用並假定 xdebug.so 的路徑正確,因此需要禁用其他擴展並重試。然後您可以重新啟用擴展以執行其他測試,如緩存的效果。

Xdebug 站點還有其他一些故障檢修技巧。

xdebug相關參數設置

xdebug.default_enable

類型:布爾型 默認值:On
如果這項設置為On,堆棧跟蹤將被默認的顯示在錯誤事件中。你可以通過在代碼中使用xdebug_disable()來禁止堆疊跟蹤的顯示。因為這是xdebug基本功能之一,將這項參數設置為On是比較明智的。

精彩內容,請點擊下一頁!

  • 共2頁:
  • 上一頁
  • 1
  • 2
  • 下一頁

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved