我一直试图用gprof
2.25.2(在Cygwin下)来描述一些C ++,并且它报告说10%的时间花在我知道没有被调用的函数上。 (我将一个print语句放入相关函数中来验证这一点。)它似乎也认为这个函数是递归调用自身的(调用次数为500+16636500
),但绝对不是。
这是一个足够大的程序,我没有简单的方法来制作一个我可以在这里发布的最小工作示例,但如果有人对可能导致这种情况的任何想法有任何想法,我将不胜感激。
编辑:使用CMake + g ++构建。 CMAKE_BUILD_TYPE=RELWITHDEBINFO
。
答案 0 :(得分:0)
我假设你正在使用gcc / g ++ ...
这听起来像是调试符号相对于源代码或可执行文件已过时的情况。尝试清理构建空间,重新编译(当然使用-g
或-ggdb3
)。如果您正在使用优化进行编译,并且可以将其关闭(例如-O0
而不是-O1
,-O2
或-O3
),请执行此操作。如果可行,请尝试-O1
或-O2
,看看会发生什么。