我在一个运行时间为16.637秒
的C++程序上运行了gprof
,根据time()
,我得到了以下输出的第一行:
% cumulative self self total
time seconds seconds calls s/call s/call name
31.07 0.32 0.32 5498021 0.00 0.00 [whatever]
为什么它列出了31.07%的时间,而只花费了0.32秒?这是每次调用的时间吗?(那不会是自身s/call吗?)
这是我第一次使用gprof,请多多关照 :)
编辑:通过向下滚动,看起来gprof只认为我的程序需要1.03秒。为什么它会如此错误?
gprof
会忽略任何未被插装的代码,通常包括在stdlib
和系统调用中花费的时间。获取 I/O 和分配绑定程序的准确分析信息可能会有些棘手。 - Chris Conway