在WinCacheGrind中打开CacheGrind文件时缺少函数名称

时间:2015-03-27 15:10:06

标签: php format profiling xcache webgrind

地狱全部。我在一个apache / php服务器上安装了XDEBUG作为ZEND模块。它输出分析文件,但输出不包含函数名称,只包含数字。

我看起来不像其他cachegrind输出文件。我的文件有数字而不是函数/文件名。

如果我尝试使用WinCacheGrind打开文件,则会出错。 我也安装了webgrind,输出只显示数字。有时会有文件名,但文件名前面有一个数字。点击它会导致错误。

  

版本:1创建者:xdebug 2.3.2   cmd:/backup/united/public_html/member.php   部分:1个职位:行

事件:时间

fl=(1) php:internal
fn=(1) php::define
7 5

fl=(1)
fn=(1)
51 3

fl=(1)
fn=(1)
52 1

fl=(1)
fn=(1)
53 1

fl=(1)
fn=(1)
54 1

fl=(1)
fn=(1)
55 1

fl=(1)
fn=(1)
57 1

fl=(1)

查看Webgrind image

2 个答案:

答案 0 :(得分:5)

我发现Xdebug 2.3.2有一种与webgrind和其他可视化工具不兼容的新格式。这就是可视化不包含函数名称的原因。

但它与QCacheGrind 0.7.4兼容 我安装了它,发现了Web服务器性能不佳的来源。

答案 1 :(得分:2)

由于XDebug 2.3复制的文件和函数名称已被数字替换以节省一些空间,因此请确保您的cachegrind格式支持"文件名"和"功能名称"压缩。

请参阅:Profiling PHP Scripts at XDebug

  

Windows的用户也可以使用WinCacheGrind。该功能与KCacheGrind不同,因此在此页面上记录使用KCacheGrind的部分不适用于此程序。 WinCacheGrind目前不支持Xdebug 2.3引入的cachegrind文件的文件和函数压缩。

有关名称压缩的更多详细信息,请查看Callgrind Format Specification。以下是一些简要说明:

  

随着调用等关联规范的引入,需要多次指定相同的函数或相同的文件名。由于C ++中的绝对文件名或符号名称可能很长,因此能够为位置规范指定整数ID是有利的。这里,术语"位置"对应于文件名(源文件或目标文件)或函数名称。

     

为了支持名称压缩,位置规范不仅可以是" spec=name"的格式,还可以是" spec=(ID) name"指定整数ID到名称的映射,以及" spec=(ID)"引用先前定义的ID映射。每个位置规范都有一个单独的ID映射,即您可以将ID 1用于文件名和符号名。

还检查这些错误报告的状态: