我正在尝试了解 Callgrind 配置文件格式。我找到了网上的描述
在遇到“扩展示例”之前,我以为我理解得很好:
events: Instructions
fl=file1.c
fn=main
16 20
cfn=func1
calls=1 50
16 400
cfl=file2.c
cfn=func2
calls=3 20
16 400
fn=func1
51 100
cfl=file2.c
cfn=func2
calls=2 20
51 300
fl=file2.c
fn=func2
20 700
描述如下:可以看到,在“main”中,仅执行了第 16 行的代码,其中还调用了其他函数。“main”的包含成本是 420,它是自身成本 20 和调用中花费的成本之和。
当只有 func2 的 self 成本已经是 700 时,'main' 的包含成本怎么可能是 420?