查看xdebug profile文件的几个程序

在优化php代码执行效率过程中,有个好办法是利用xdebug生成profile文件,然后查看整个程序的瓶颈在哪里。现在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制作。 更详细的介绍可以看以前写的关于CachegrindVisualizer的介绍。 Kcachegrind Kcachegrind是linux下的一个图形化profile查看工具,功能很强劲。 Callgrind uses runtime […]

CachegrindVisualizer

CachegrindVisualizer是一个xdebug的profile文件查看客户端,采用Adobe的AIR制作,很让人惊讶,因为目前我看到的采用AIR制作的软件少的可怜. 与CachegrindVisualizer具有类似功能的软件还有wincachegrind,相比之下,wincachegrind的功能更为强大,使用上也更方便.但是即便如此,我还是乐见CachegrindVisualizer发展的更好. CachegrindVisualizer支持的操作系统 Windows 2000 SP4, Windows XP SP2, Windows Vista Home and Ultimate Edition, Mac OS 10.4.7 and above (Intel and PowerPC), Mac OS X Leopard. 运行时的抓图 相关连接 AIR RUNTIME下载 xdebug

ubuntu下安装xdebug的笔记

在ubuntu下安装xdebug的笔记。 下载xdebug 2.0: http://www.xdebug.org/link.php?url=xdebug200 解压: tar xzvf xdebug-2.0.0.tgz 编译安装: cd xdebug-2.0.0 phpize ./configure –enable-xdebug make cp modules/xdebug.so /usr/lib/php5/20051025/ 这里的/usr/lib/php5/20051025/是我的php extension_dir目录 修改配置文件php.ini,添加一行 zend_extension=”/wherever/you/put/it/xdebug.so” 重启apache 顺便贴个 ubuntu下安装php5 + pdo

用xdebug优化php的三个小窍门

xdebug的2.0正式版已经发布了。这个工具用在php的代码调试,优化方面效果很不错。下面贴上俺使用过程中的几个小窍门。 xdebug生成profile文件,可以用KCachegrind来查看,但是这个工具只在linux下面可用,没有windows下的版本。这里推荐一个win下的免费工具——wincachegrind,也可以查看xdebug的profile文件,用来分析php代码运行情况足够用了(偶尔不太稳定)。 xdebug一般情况下只会对一个请求做profile记录,如果需要查看几个请求的运行情况合集,可以设置xdebug.ini的 xdebug.profiler_aggregate = 1 记得重启你的apache。 如果在xdebug.ini里设置了 xdebug.profiler_enable = 1 那么每次程序运行期间xdebug都会记录profile,这样对程序的运行速度有很大的影响。为了避免这一情况发生,可以让xdebug仅在需要的时候运行——设置 xdebug.profiler_enable_trigger = 1 这样,只有你用get/post方式提交XDEBUG_PROFILE变量的情况下,xdebug才会开始干活。 另:将最新版本的xdebug和APC同时使用,没有出现兼容性问题,运行良好。