gprof参数说明及常见错误
参数说明
l -b 不再输出统计图表中每个字段的详细描述。
l -p 只输出函数的调用图(Call graph的那部分信息)。
l -q 只输出函数的时间消耗列表。
l -e Name 不再输出函数Name 及其子函数的调用图(除非它们有未被限制的其它父函数)。可以给定多个 -e 标志。一个 -e 标志只能指定一个函数。
l -E Name 不再输出函数Name 及其子函数的调用图,此标志类似于 -e 标志,但它在总时间和百分比时间的计算中排除了由函数Name 及其子函数所用的时间。
l -f Name 输出函数Name 及其子函数的调用图。可以指定多个 -f 标志。一个 -f 标志只能指定一个函数。
l -F Name 输出函数Name 及其子函数的调用图,它类似于 -f 标志,但它在总时间和百分比时间计算中仅使用所打印的例程的时间。可以指定多个 -F 标志。一个 -F 标志只能指定一个函数。-F 标志覆盖 -E 标志。
l -z 显示使用次数为零的例程(按照调用计数和累积时间计算)。
The -pg option also works with a command that both compiles and links:
cc -o myprog myprog.c utils.c -g -pg
Note: The -pg option must be part of your compilation options as well as your link options. If it is not then no call-graph data will be gathered and when you run gprof
you will get an error message like this:
gprof: gmon.out file is missing call-graph data
参考文献:http://sourceware.org/binutils/docs-2.16/gprof/Compiling.html
一般用法: gprof –b 二进制程序 gmon.out >report.txt
- 使用gprof来分析gmon.out文件,需要把它和产生它的应用程序关联起来:
- gprof 可执行文件 gmon.out -p 得到每个函数占用的执行时间
- gprof 可执行文件 gmon.out -q 得到call graph,包含了每个函数的调用关系,调用次数,执行时间等信息。
- gprof 可执行文件 gmon.out -A 得到一个带注释的“源代码清单”,它会注释源码,指出每个函数的执行次数。这需要在编译的时候增加 -g选项。
- 参考文献:http://blog.csdn.net/stanjiang2010/article/details/5655143
- http://blog.csdn.net/eroswang/article/details/1774486