在Ubuntu上利用GCC进行代码性能分析,常用工具及方法如下:
gprof
-pg
选项生成分析数据,如gcc -pg -o program program.c
。gmon.out
文件。gprof program gmon.out > analysis.txt
生成报告,查看函数调用次数及耗时。perf
sudo apt install linux-tools-common linux-tools-$(uname -r)
。sudo perf record -g ./program
。sudo perf report
,可查看CPU使用、缓存命中率等详细信息。Valgrind(侧重内存分析)
sudo apt install valgrind
。valgrind --tool=memcheck ./program
。valgrind --tool=callgrind ./program
,配合kcachegrind
可视化函数调用耗时。说明:
gprof
适合分析函数级性能,轻量级但信息较基础。perf
可深入硬件级性能数据,适合复杂场景。Valgrind
侧重内存问题,对性能分析有一定辅助作用。