gprof 输出内容解释

gprof输出内容示例


Each sample counts as 0.01 seconds
.
  %     cumulative   self               self          total          
 time   seconds     seconds   calls     ms/call       ms/call       name   
 81.13      0.43     0.43       11      39.09          39.09        fun_2()
 18.87      0.53     0.10       11       9.09          9.09         fun_1()
  0.00      0.53     0.00        1       0.00          530.00       fun_3()



self ms/call : 函数自身,不带子函数,每次call消耗时间, ms单位:ms/call
calls   : 函数在程序生命期内的总的调用次数。(注!递归调用不计数;多次递归调用的时间算在单次的调用时间里面)
self seconds : 函数自身,不带子函数,程序生命周期中全部call消耗时间,秒单位;= (self ms/call) * calls / 1000
% time   : 以%形式展示 self seconds 列;
total ms/call   : 函数自身,带子函数,每次call消耗时间, ms单位:ms/call



gprof手册


 英文: http://www.cs.utah.edu/dept/old/texinfo/as/gprof.html
 中文: http://hi.baidu.com/daisycheung/blog/item/72c0f9276465690f908f9df2.html


怎么产生gmon.out文件?
    编译程序是加上 -pg 参数, 然后, 程序正常退出时会产生gmon.out
    举例:g++ -Wall -g -pg 1.cpp -o 1

怎么分析gmon.out 
    举例:gprof 进程名 gmon.out


常用的gprof命 令选项:

 
 -b            不再输出统计图表中每个字段的详细描述。 
 -p            只 输出函数的调用图(Call graph的那部分信息)。
 -q            只输出函数的时间消耗列表。
 -e Name       不 再输出函数Name 及其子函数的调用图(除非它们有未被限制的其它父函数)。可以给定多个 -e 标志。一个 -e 标志只能指定一个函数。
 -E Name       不再输出函数Name 及其子函数的调用图,此标志类似 于 -e 标志,但它在总时间和百分比时间的计算中排除了由函数Name 及其子函数所用的时间。
 -f Name       输 出函数Name 及其子函数的调用图。可以指定多个 -f 标志。一个 -f 标志只能指定一个函数。 
 -F Name       输出 函数Name 及其子函数的调用图,它类似于 -f 标 志,但它在总时间和百分比时间计算中仅使用所打印的例程的时间。可以指定多个 -F 标志。一个 -F 标志只能指定一个函数。-F 标志覆盖 -E 标志。 
 -z           显示使用次数为零的例程(按照调用计数和累积时间计算)。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值