我希望看到使用perf报告在函数及其所有后代中花费的时间部分。也就是说,如果我有类似
的东西void foo()
{
biz(); // 3,300 cycles
baz(); // 3,300 cycles
// ... 100 cycles
}
int main()
{
foo();
bar(); // 3,300 cycles
return 0;
}
并且函数bar
,baz
和biz
每个需要3,300个周期,foo
本身只需要100个周期,然后我希望看到如下图:
main 100%
|
+--- foo 67.0% (1.0%)
| |
| +--- biz 33.0%
| +--- baz 33.0%
|
+--- bar 33.0%
答案 0 :(得分:0)
您必须使用选项-g记录数据以收集调试信息(来自命令帮助:“执行调用图(堆栈链/回溯)记录”)。
然后,要按预期显示调用图,请添加选项--stdio,以使其具有平坦但分层的输出,否则您将进入交互式ncurses模式。