使用XDebug对PHP进行性能分析

在对PHP代码进行断点调试时,曾经使用过XDebug。最近才知道XDebug还可以对PHP Web代码进行性能分析。下面大概介绍一下使用方法。

首先需要下载XDebug,可以链接该地址http://www.xdebug.com/download.php。这里面需要注意,所下载的XDebug版本必须和你所使用的PHP版本吻合,否则会造成系统崩溃。如果系统崩溃了,就下载其他版本试试看。我下载的是Windows版的适用于PHP5.2.8的dll文件,下载完成之后,我把文件名改为“php_xdebug.dll”。

然后需要把php_xdebug.dll放置到php的ext录里,在我们本机上是“C:\wamp\bin\php\php5.2.8\ext”。我安装的是WampServer,而且安装在C盘根目录。

接下来,需要修改php.ini文件。在文件最末尾添加如下内容:

[Xdebug]

zend_extension_ts="C:/wamp/bin/php/php5.2.8/ext/php_xdebug.dll"

xdebug.auto_trace=1

xdebug.collect_params=1

xdebug.collect_return=1

xdebug.trace_output_dir="D:/temp/xdebug"

xdebug.profiler_enable=1

xdebug.profiler_output_dir="D:/temp/xdebug"

xdebug.profiler_output_name="cachegrind.out.%t"

xdebug.remote_enable=1

xdebug.remote_handler=dbgp

xdebug.remote_host=localhost

xdebug.remote_port=9000

“xdebug.profiler”选项就是告诉XDebug要对PHP代码进行性能分析。分析结果会输出到“D:\temp\xdebug”目录下,文件是以“cachegrind.out.时间戳”命名。

最后,重启Apache服务器。如果重启过程没有遇到错误就算大功告成。通过phpinfo函数可以看到XDebug配置信息,如图1所示:

 

(图1)

我们可以通过请求本地上的一个页面试验一下。在D:\temp\xdebug目录下冒出来两个文件:

  • cachegrind.out.1277560600
  • trace.3495983249.xt

“1277560600”是时间戳,这个值就是“xdebug.profiler_output_name="cachegrind.out.%t"”中的“%t”。这两个文件都是文本文件,你可以通过记事本查看里面的内容。不过很遗憾,这里面的内容很难看懂。但也很幸运,有工具可以帮助我们看懂这两个文件。http://www.xdebug.com/docs/profiler这个地址中介绍了三个分析工具KCacheGrind(适用于Linux)、WinCacheGrind(适用于Windows)和Webgrind(Web页面方式)。

我选用了Webgrind。到http://code.google.com/p/webgrind/下载,然后解压到Apache网站根目录下(也就是htdocs目录下)即可,基本上不需要修改任何配置。运行http://127.0.0.1/webgrind,就可以查看性能分析记录。如图2所示:

 

(图2)

原文地址:https://www.cnblogs.com/afritxia2008/p/1765955.html