gprof实际上只是一个用于读取gmon.out结果文件的工具,通过加入编译参数 -pg,让gcc编译生成的程序在执行之后产生一个profile文件,gprof可以解析这个文件。
最主要的作用就是可以分析程序中函数的调用次数和调用关系,以及函数消耗时间。
gprof采用混合方法来收集程序的统计信息,他使用检测方法,在编译过程中在函数入口处插入计数器用于收集每个函数的被调用情况和被调用次数;也使用采样方法,在运行时按一定间隔去检查程序计数器并在分析时找出程序计数器对应的函数来统计函数占用的时间。
使用方法:
gcc -pg hello.c
./a.out
gprof -b a.out