有没有办法只使用xdebug记录比X慢的执行?

时间:2013-02-13 07:58:31

标签: php performance debugging xdebug php-extension

我希望xdebug只跟踪超过X ms或超过Y KB RAM的“跳转”,例如,每次执行时间超过100毫秒或内存使用量增加超过100KB。这样我就可以忽略数千条我不需要查看的跟踪线,并且可以使优化变得更加容易 - 因为在ZF2中,膨胀的框架需要1秒才能开始使用我们企业项目中的composer autoloader,结果在成千上万行中我真的没用。沿着这条线的某个地方,我确实发现了执行时间的较大跳跃,但不是经过长时间的滚动。

是否有一个默认选项来禁用“比X更快”执行的日志记录,或者如果没有,你知道一个帮助shell / python脚本可以只发出较慢的那些吗?

为了澄清,我正在讨论通过在我的应用程序中运行xdebug_start_trace()获得的.xt文件的内容。

1 个答案:

答案 0 :(得分:1)

我对这些选项一无所知,但我建议的是使用配置文件而不是跟踪。

Here是一篇如何使用它的文章。 如果很短,请将这些行放在php.ini文件中:

xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir="c:\Projects"

当您想要启动探查器时,请使用查询参数?XDEBUG_PROFILE=1

运行url

这将生成一个名称为cachegrind.out.*的文件,并将其放入profiler_output_dir

可以使用CacheGrind查看器查看该文件。上面的链接有一个应用程序列表,可以查看不同平台的文件。我使用wincachegrind(用于Windows)来分析ZendFramework应用程序。对我来说非常有用的工具。界面允许查看调用树,执行时间,调用次数等。 好吧,但我看不到用它来测量内存使用情况的选项。