用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同时使用,没有出现兼容性问题,运行良好。

作者: volcano 发表于7月 22, 2007 at 10:25 am

版权信息: 可以任意转载, 转载时请务必以超链接形式标明文章原始出处作者信息及此声明

Tags: ,,

5 条评论 »

  1. xLight 于 2007-07-24 @ 17:22:17 留言

    不知道你有没有和EAccele组合用过呢?

    哦,不如随便问一下你对APC和EA的对比评价吧?

  2. volcano 于 2007-07-24 @ 18:33:05 留言

    EAccele现在没考虑过使用,它最后的更新是2006/02/15,貌似活力不够哦。

  3. qinyf 于 2007-08-07 @ 10:36:43 留言

    eacc的stable release的最后更新日期是2007年5月6日,svn也一直有活动,没有这么差吧。
    http://eaccelerator.net/

  4. volcano 于 2007-08-07 @ 15:27:38 留言

    你说的对,看花眼了,它居然把最新的版本放在最下面…

    我没有在正式场合使用apc的经验,还不能提供比较数据。但是eacc多出来的一个功能是加密php代码哦。

  5. xLight的蓝闪小窝 于 2007-08-20 @ 15:47:59 留言

    SHELL下执行PHP程序时怎么触发Xdebug记录CacheGrid?…

    需求有时就是这么的变态
    情况:通过CronTab定时并发执行的一系列php程序 ,我想检测 其中的某个程序的效率。
    分析:
    开始的时候想通过xdebug.profiler_enable = 1并且传入GET/POST 。
    但发现SHELL下P…

RSS 为此帖反馈评论 · 反向跟踪 网站

留条评论