XDebug安装配置及使用

来源:互联网 发布:网络直播教学平台 编辑:程序博客网 时间:2024/06/06 01:51

XDebug 是一个 php 代码的调试工具, 对程序员调试程序有很大的帮助。

下面介绍如何配置XDebug(只针对WINDOWS系统)

第一步:

官方网站: http://xdebug.org/
下载地址http://xdebug.org/download.php

1:点击页面的download下载,选择与你安装的PHP版本一致的;
2:下载完Xdebug之后就要配置了,首先我们把下载好的dll文件放到相应的目录中->D:/wamp/bin/php/php5.3.10/ext下面,此目录为php扩展目录,并在php扩展里面把php_xdebug-2.2.3-5.3-vc9勾上。接着就要在php.ini里面进行配置了,打开php.ini文件搜索XDEBUG,遇到此行去掉前面的分号->;extension=php_xdebug-2.2.3-5.3-vc9.dll

编辑php.ini,加入下面几行:
[xdebug]
; 是否输出分析文件
xdebug.profiler_enable = 0
;打开效能监测器
xdebug.remote_enable = on
; 允许通过 ?XDEBUG_PROFILE=1 的 GET/POST 参数来触发分析文件输出
xdebug.profiler_enable_trigger = 1
; 分析文件命名格式
xdebug.profiler_output_name = cachegrind.out.%t.%p
;设定效能监测信息输出文件的路径。
xdebug.profiler_output_dir = "D:/wamp/wamp/tmp"
; 分析文件输出目录
xdebug.profiler_output_dir = "F:/xdebug/www"
; 调试跟踪文件输出目录
xdebug.trace_output_dir = "F:/xdebug/www"
; 限制无限递归的访问深度
xdebug.max_nesting_level = 50
; 是否重载 var_dump 函数
xdebug.overload_var_dump=0

这一行是必须添加的:zend_extension_ts="D:/wamp/bin/php/php5.3.10/ext/php_xdebug-2.2.3-5.3-vc9.dll"
配置完成后重启apache;打开phpinfo;如果发现可以找到下图,那你就配置成功了。

第二步:

配置完Xdebug之后,还需要下载webgrind,这是一个很好的php执行时间分析工具;

http://code.google.com/p/webgrind/

下载地址:http://webgrind.googlecode.com/files/webgrind-release-0.81.zip

  1. 下载webgrind,解压缩到www目录下。 首先访问需要优化的php程序,
  2. 例如创建了info.php文件,在url地址栏里面输入http://localhost/info.php/?XDEBUG_PROFILE=1; 
  3. 然后访问:http://localhost/webgrind/

第三步:

下载WinCacheGrind。下载完之后直接安装运行,WinCacheGrind是windows下的profile查看程序。所谓profile,就是程序或软件保存的档案资料,该软件常与XDebug配合使用来分析PHP程序的性能。

WinCacheGrind下载地址:http://www.php100.com/html/download/tools/2011/0110/7271.html

完成以上三步,我们就可以利用刚刚下载的工具进行代码分析和优化了。
下面是一个简单的对于代码分析优化的过程:示例:

写一个php文件:

在地址输入http://127.0.0.1/static/curl.php/?XDEBUG_PROFILE=1必须加上绿色部分生成一个profile文件,否则可能不会生成。
此时WinCacheGrind得到的截图:
打开时间消耗最多的文件夹,消耗时间为(84ms)
可以很清晰的看到是哪个目录下的哪个文件,然后找出这个php文件,发现里面的循环语句,循环次数多。

下面我们可以试着把循环次数改成100次,看看会出现什么样的结果。

还是原来的php文件,只是把原来的1000改成了100。 此时WinCacheGrind得到的截图 :

我们发现原来的84ms变成了0.6ms。
工欲善其事必先利其器,利用Xdebug就很容易分析到我们要调试或者优化的代码以及文件。对于我们的开发会很有帮助。
原创粉丝点击