时间抽样问题与gprof

我试图分析一些c ++代码,用g ++编译,包括使用gprof的选项-pg。 但是,尽pipe程序需要10-15分钟才能在我的电脑上运行(在CPU超时的情况下),gprof生成的表的%time,cumulative seconds和self seconds列完全是0.00s! 调用列包含正确的外观数据,例如超过150,000个基本function的调用。 以下是收集的数据样本:

% cumulative self self total time seconds seconds calls Ts/call Ts/call name 0.00 0.00 0.00 156012 0.00 0.00 perm::operator[](int) const 0.00 0.00 0.00 153476 0.00 0.00 perm::perm(void) 

该程序不使用string,唯一的#include是iostream(仅用于输出最终答案),所以它不能慢,因为string发现和比较或其他类似的缓慢的外部函数在这个问题中build议: 无法使用gprof – gnu分析器来累计时间

该程序本身退出罚款,我没有理由相信configuration文件数据没有被正确写入(如在这里build议: gprof报告没有时间积累 )

因为这一切都在Windows 7中完成,试图使用鲨鱼或Valgrind不是一个选项。

是否有一个原因,它是在每个functionlogging0.00s?

gprof不计算任何阻塞的时间,如I / O或其他东西。 另外,“自我时间”通常在任何子程序中都是非常小的,例如,如果你主要在一个DLL中gprof看不见它的时候使用库。 检查这个答案。