在perf图中显示累积周期

时间:2014-10-27 17:35:11

标签: perf

我希望看到使用perf报告在函数及其所有后代中花费的时间部分。也就是说,如果我有类似

的东西
void foo()
{
    biz(); // 3,300 cycles
    baz(); // 3,300 cycles
    // ...      100 cycles
}

int main()
{
    foo();
    bar(); // 3,300 cycles
    return 0;
}

并且函数barbazbiz每个需要3,300个周期,foo本身只需要100个周期,然后我希望看到如下图:

main 100%
|
+--- foo 67.0% (1.0%)
|    |
|    +--- biz 33.0%
|    +--- baz 33.0%
|
+--- bar 33.0%

1 个答案:

答案 0 :(得分:0)

您必须使用选项-g记录数据以收集调试信息(来自命令帮助:“执行调用图(堆栈链/回溯)记录”)。

然后,要按预期显示调用图,请添加选项--stdio,以使其具有平坦但分层的输出,否则您将进入交互式ncurses模式。