地狱全部。我在一个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)
答案 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用于文件名和符号名。
还检查这些错误报告的状态: