一. 使用方法
- 编译时添加-pg参数
g++ -pg main.cpp
- 如果程序是运行起来之后不会自动退出的,需要添加信号捕捉函数,进行exit
- 程序运行一段时间后,ctrl+c或者kill掉进程
- 目录下会生成gmon.out文件,使用命令
gpfof -b -A -p -q ./ruku gmon.out > log.log
执行完之后,即可查看log.log中的内容
二. 使用局限
睡眠过多的进程,gprof很难分析其性能,原因是gprof以固定的周期对程序运行时间进行采样测量,当程序挂起时,gprof就不会对程序进行采样测量。
可以使用time进行基准测试,以查看所测试的进程花费的用户态、内核态的时间。
> time
real 0m0.000s
user 0m0.000s
sys 0m0.000s
三. 结果分析