跳转到主内容
极星编程网:以代码为星,赴技术山海!

使用xdebug调试PHP 找出PHP程序的瓶颈

xdebug 是 php 的一个扩展应用,有了xdebug就可以轻松的调试php程序,有了它,我们就不用使用
var_dump()
,
print_r()
之类的傻瓜调试函数了。 xdebug则提供了更多的功能,能全方位的对php脚本进行调试。 xdebug 主要的功能如下: 堆栈追踪和函数追踪; 错误信息; 内存分配; 剖析php脚本的信息; 代码覆盖率分析; 远程调试分析; 1、Ubuntu搭建xdebug调试环境 安装Xdebug模块 在终端中使用apt-get安装xdebug,命令如下 sudo apt-get install php5-dev php-pearsudo 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,加入下面几行: 立即学习 “ PHP免费学习笔记(深入) ”; 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 8.5.5 PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。 下载 ;是否覆盖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 下一页

相关文章