我希望 xdebug 仅跟踪超过 X 毫秒或超过 Y KB RAM 的“跳跃”,例如,每次执行时间超过 100 毫秒或内存使用增加超过 100KB。这会让我忽略成千上万条我不需要看到的跟踪线,并且会让优化变得更容易——因为在 ZF2 中,臃肿的框架只需要 1 秒就可以启动我们企业项目上的 composer autoloader,结果在数千行中我真的没有用。沿线的某个地方,我确实发现执行时间有更大的跳跃,但在长时间滚动之后并没有。
是否有一个默认选项可以禁用“比 X 快”执行的日志记录,或者如果没有,您是否知道可以仅 grep 出较慢的执行的辅助 shell/python 脚本?
为了澄清,我说的是通过在我的应用程序中运行 xdebug_start_trace() 获得的 .xt 文件的内容。
最佳答案
我对这些选项一无所知,但我可能建议使用配置文件而不是跟踪。
Here是一篇如何使用它的文章。 如果较短,请将这些行放入您的 php.ini 文件中:
xdebug.profiler_enable = 0
xdebug.profiler_enable_trigger = 1
xdebug.profiler_output_dir="c:\Projects"
当你想启动分析器时,使用查询参数运行 url ?XDEBUG_PROFILE=1
这将生成一个名称类似于 cachegrind.out.*
的文件,并将其放入 profiler_output_dir
。
可以使用适用于您操作系统的 CacheGrind 查看器查看该文件。上面的链接有一个应用程序列表,可以查看不同平台的这些文件。我使用 wincachegrind(适用于 Windows)来分析 ZendFramework 应用程序。非常有用的工具,对我来说。界面允许查看调用树、执行时间、调用次数等。 好吧,但我看不到用它来测量内存使用情况的选项。
关于php - 有没有办法用 xdebug 只记录比 X 慢的执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14848879/