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

标签 php performance debugging xdebug php-extension

我希望 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/

相关文章:

php - 当精确匹配可用时对 MySQL 表执行部分搜索

php - 从 csv 文件大量插入

mysql - 查询以避免不同时段的冲突

c - 哪个会更快

javascript - 使用Firebug调试器解决脚本冲突

php - 我如何使用 php 从 sql 查询创建一个 csv 文件

php - 将 postgresql the_geom 函数添加到 php 插入

android - 使用 Space over View 的优势是什么

c++ - 在 C++ 的宏中包装方法

c++ - 有选择地编译宏外部的代码