使用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程序的瓶颈

46 评论

  1. dutasteride over the counter avodart canada buy ondansetron for sale

  2. acillin drug acillin brand erythromycin 250mg usa

  3. buy catapres 0.1 mg online cheap antivert online order tiotropium bromide pill

  4. buy azithromycin online cheap brand prednisolone purchase neurontin generic

  5. buy tadalafil generic us cialis sildenafil 100mg without prescription

  6. clozapine 50mg cost clozaril 100mg uk buy dexamethasone 0,5 mg generic

  7. buy an essay online bonus casino online casino no deposit bonus

  8. cialis tablets viagra order purchase sildenafil

  9. buy generic cefuroxime 500mg robaxin 500mg oral order robaxin 500mg without prescription

发表评论

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

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