1. GProfile的简介
一个测试C++程序代码中函数性能瓶颈的工具
2. GProfile原理
- 通过在编译和链接程序的时候(使用-pg和链接选项),gcc在每个函数中都加入了一个mcount函数
- 运行时mcount会在内存中保存一张函数调用图,这张调用图保存了所有与函数相关的调用时间,调用次数等所有信息。
3. GProfile的使用
- 编译时在
CMakeLists.txt
加入-pg
- 运行时:将
libgprof-helper.so
拷到与二进制文件同级的目录下 - 设置临时环境变量:
#export PATH=$PATH:/opt/au1200_rm/build_tools/bin
查看是否已经设好,可用命令export查看:[root@localhost bin]# export
授权:chmod 777 check_diff
- 运行得到
gmon.out
文件
4. 查看gmon.out结果
-
gprof -b test gmon.out
//test的意义:运行源程序./test后会生成一个gmon.out的文件。 -
gprof test gmon.out -p
//-p参数标识“flat profile”模式,在分析结果中不显示函数的调用关系
程序运行时间统计 call graph信息
函数结果信息flat profile信息
网友评论