将在gprof的计算的时间包括:什么是未成型的功能用在何处?(Would the time coun

2019-07-31 05:09发布

我现在有我想要做分析的一个项目,但它使用其他库,我没有控制权。 说如果,如果有这样的功能:

#include <library.h>
void function(...)
{
    // do something
    for (...)
    {
        // ...
        library_function(...);
        // ...
    }
    // do something
}

让我们假设library_function是来自未启用分析编译另一个静态库。 现在,如果gprof的告诉我运行function花了10秒,包括它的所有儿童,将在包括花费的时间library_function

Answer 1:

不会,因为这样gprof工作,它的样本程序计数器,计算出其功能的程序计数器为,并增加自我时该功能。

此外,它计算任何函数的调用的任何函数B.次数

从这一点,它试图弄清楚一切了。

当然,这仅适用于它所知道的功能。

这是非常聪明的,但你可以做的更好

增加:因为有人在他们的智慧决定删除上述帖子,这里是你如何能做到更好的简短摘要:

试试这个。
这里有一个44X加速的一个例子。
这里有一个730X加速。
这里的统计信息的解释。
这里有一个答案的批评。
这里是一个8分钟的视频演示。



文章来源: Would the time counted in gprof include what is spent in functions that are not profiled?
标签: gprof