此文档使用gprof 的方式检查项目中是哪部分函数导致 CPU 占比过高,但是也有一些局限性。例如,它不能分析多线程程序的性能。因此,在实际应用中,可以结合其他性能分析工具(如
Valgrind、perf等)一起使用,以获取更全面的性能数据。
CMake 项目中启用
gprof,可以通过添加编译器和链接器选项来启用 gprof 支持;
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pg")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -pg")
编译文件
mkdir build
cd build
cmake ..
make
执行你的程序,这会在当前目录生成一个 gmon.out 文件:
使用 gprof 命令分析生成的 gmon.out 文件:
gprof rf-systemsettings gmon.out > analysis.txt