我正在使用gprof在netbsd上分析用户态应用程序,并使用超过30%的周期查看clock_gettime。 Gprof没有显示调用它的位置(它显示了一些显然不调用clock_getttime的函数)。 该应用程序使用第三方代码,包括libevent 1.4(似乎使用clock_gettime)。我试着从那里删除电话,但无法确定。
答案 0 :(得分:1)
这完全取决于你的程序正在做什么,请记住,如果你正在进行任何I / O,你的程序使用的实际CPU时间可能很小,gprof
看不到还要别的吗。
因此,如果对定时例程的某些调用卡在那里,并且它们经常被调用,那么它们肯定会显示出很高的百分比。
为什么gprof
没有显示他们被调用的位置?
对于使用-pg编译的例程,它会尝试确定在输入任何例程时调用者是谁。
尝试,但这并不意味着它成功。
无论如何,that's gprof
。