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的三个小窍门”
不知道你有没有和EAccele组合用过呢?
哦,不如随便问一下你对APC和EA的对比评价吧?
EAccele现在没考虑过使用,它最后的更新是2006/02/15,貌似活力不够哦。
eacc的stable release的最后更新日期是2007年5月6日,svn也一直有活动,没有这么差吧。
http://eaccelerator.net/
你说的对,看花眼了,它居然把最新的版本放在最下面…
我没有在正式场合使用apc的经验,还不能提供比较数据。但是eacc多出来的一个功能是加密php代码哦。
SHELL下执行PHP程序时怎么触发Xdebug记录CacheGrid?…
需求有时就是这么的变态
情况:通过CronTab定时并发执行的一系列php程序 ,我想检测 其中的某个程序的效率。
分析:
开始的时候想通过xdebug.profiler_enable = 1并且传入GET/POST 。
但发现SHELL下P…