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


5 responses to “用xdebug优化php的三个小窍门”

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

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

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

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

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

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

Leave a Reply

Your email address will not be published. Required fields are marked *