使用xdebug调试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是比较明智的。

精彩内容,请点击下一页!

波比源码 – 精品源码模版分享 | www.bobi11.com
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 本站源码并不保证全部能正常使用,仅供有技术基础的人学习研究,请谨慎下载
8. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!

波比源码 » 使用xdebug调试PHP 找出PHP程序的瓶颈

发表评论

Hi, 如果你对这款模板有疑问,可以跟我联系哦!

联系站长
赞助VIP 享更多特权,建议使用 QQ 登录
喜欢我嘛?喜欢就按“ctrl+D”收藏我吧!♡