4

X 调试将输出作为部分返回,而不仅仅是一个文件。我正在使用 ubuntu 16,不知道为什么突然输出在几个文件中。我遇到的问题是我无法在 Kcachegrind 中打开这些文件,因为输出在单独的文件中有不同的部分。任何人?提前致谢

4

1 回答 1

5

使用默认配置 xdebug 为每个 PID 创建一个文件。

当您使用 ajax 调用分析网站时,浏览器将发出多个请求,并且这些请求可能由您的网络服务器的不同 PID/实例处理,因此您会获得多个文件。

你可以检查你的 php.ini。有多个 xdebug 设置来控制分析数据的存储方式。例如:

xdebug.profiler_aggregate: 类型:整数,默认值:0 当此设置设置为 1 时,将为多个请求写入单个分析器文件。可以浏览多个页面或重新加载页面以获得所有请求的平均值。该文件将命名为 .cachegrind.aggregate。您将需要移动此文件以获取另一轮聚合数据。

xdebug.profiler_append: 类型:整数,默认值:0 当此设置设置为 1 时,当新请求映射到同一文件时,分析器文件将不会被覆盖(取决于 xdebug.profiler_output_name 设置。相反,文件将是附加到新的配置文件。

xdebug.profiler_output_name 类型:字符串,默认值:cachegrind.out.%p

此设置确定用于将跟踪转储到的文件的名称。该设置使用格式说明符指定格式,与 sprintf() 和 strftime() 非常相似。有几个格式说明符可用于格式化文件名。

xdebug 文档中查看更多信息

另一个选项是使用KCachegrind 中的文件/添加菜单

将配置文件数据文件添加到当前窗口。通过这种方式,您可以强制将多个数据文件加载到同一个顶层窗口中,即使它们不是来自配置文件数据文件命名约定所指定的同一运行。

于 2017-06-07T19:23:39.007 回答