xdebug的安装与使用

来源:互联网 发布:长沙软件培训学校 编辑:程序博客网 时间:2024/06/05 04:19

转自1:http://blog.163.com/noknower@126/blog/static/165451735201061210334128/

转自2:http://koda.iteye.com/blog/602123

xdebug官方:http://xdebug.org/docs/remote

安装
  下载xdebug
  有两个版本带有Non-thread-safe和不带有Non-thread-safe,主要是看你的php版本是否线程安全版本。要查看php是否为线程安全版本,可通过phpinfo来查看
xdebug的下载地址:下载地址
  然后复制到你的php下的ext目录里,
  修改php.ini,增加如下信息:
  [Xdebug]
  extension="php_xdebug-2.0.5-5.2.dll"
  ;以下是参数
  xdebug.auto_trace=on
  xdebug.collect_params=on
  xdebug.collect_return=on
  xdebug.trace_output_dir=”x:\Temp”
  xdebug.profiler_enable=on
  xdebug.profiler_output_dir=”x:\Temp”
  ;x为你的盘符
参数设置
  xdebug.default_enable=on
  ;显示默认的错误信息
  xdebug.auto_trace=on
  ;自动打开“监测函数调用过程”的功模。该功能可以在你指定的目录中将函数调用的监测信息以文件的形式输出。此配置项的默认值为off。
  xdebug.collect_params=on
  ;打开收集“函数参数”的功能。将函数调用的参数值列入函数过程调用的监测信息中。此配置项的默认值为off。
  xdebug.collect_return=on
  ;打开收集“函数返回值”的功能。将函数的返回值列入函数过程调用的监测信息中。此配置项的默认值为off。
  xdebug.max_nesting_level=100
  xdebug.profiler_enable=on
  ;打开效能监测器。
  xdebug.remote_enable=on
  ;是否调试
  xdebug.remote_host=localhost
  xdebug.remote_port=9000
  ;调试端口
  xdebug.remote_handler=dbgp
  ;选择协议
  xdebug.trace_output_dir="d:\Temp"
  ;设定函数调用监测信息的输出文件的路径。
  xdebug.profiler_output_dir="d:\Temp"
  ;设定效能监测信息输出文件的路径。
  其它参照官方网站(英文)
  设置完参数,重启服务器,使用 phpinfo() 函数查看是否有 xdebug 项目,安装是否成功。

安装wincachegrind
  由于效能监测文件:cachegrind.out.××××××××文件的内容不易被人类所理解,所以我们需要一个工具来读取它。windows下就有一款这样的软件:wincachegrind。
  1、下载安装wincachegrind  WinCacheGrind 下载地址:http://sourceforge.net/projects/wincachegrind
  2、安装运行后,点击Tools->options,设定你的working folder(php.ini里xdebug.profiler_output_dir的值)
  这样就可以比较直观的查看效能监测文件的信息了。



xdebug生成文件的查看

在优化php代码执行效率的过程中,有个好办法是利用XDebug或XHProf生成Profile文件,然后查看Profile文件分析整个程序的瓶颈在哪里。如果用XDebug生成Profile文件,方法参见前面的文章学习使用XDebug. 现在XDebug Profile的查看程序有好几个,在这里罗列一下:

WinCacheGrind
    WinCacheGrind是windows下的profile查看程序,使用起来感觉还不错,profile文件太大的话偶尔会崩溃。
    高春辉的博客上提醒大家:

引用

最近又开始拿 Xdebug 和 wincachegrind 对项目的 PHP 代码进行分析和优化,但是发现和自己输出的执行时间总是相差十倍,差的不是零头,而是十倍。
上网搜索了一下,原来在 Xdebug 2.0.0RC4 版本开始,对Profiler日志中的时间单位进行了修改。(Use µ seconds instead of a tenths of µ seconds to avoid confusion in profile information.)
恰恰WinCacheGrind又不再升级维护了,所以凡是用 2.0.0RC4 以及之后版本的 XDebug 输出的Profiler日志用WinCacheGrind来分析的话,都会有十倍的时间差距。

他已经提供了hack后的版本,可以解决时间差距的问题,有兴趣的同学可以试试。

CachegrindVisualizer
    CachegrindVisualizer是一个xdebug的profile文件查看客户端,采用Adobe的AIR制作。

KCachegrind
    KCachegrind是linux下的一个图形化profile查看工具,功能很强劲。

WebGrind
    WebGrind和WinCacheGrind的功能差不多,但是WebGrind是基于web的,采用php写的查看工具。看了一下代码,跑在linux的服务器比较好。
    WebGrind是一个基于PHP5的Xdebug profiling的Web前端工具。它仅仅实现了KCachegrind的特性子集,但是安装简单可以工作在几乎所有平台上。

下面是用WinCacheGrind查看Magento的profile抓图:



原创粉丝点击