使用XDebug和WinCacheGrind分析PHP性能

文章分类:PHP编程

在优化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抓图:

《使用XDebug和WinCacheGrind分析PHP性能》

《使用XDebug和WinCacheGrind分析PHP性能》


发表评论

您的电子邮箱地址不会被公开。

− 3 = 5