C++ 性能分析工具:gprof、Valgrind 与 perf
性能分析是优化的前提,Linux 下常用工具丰富。
1. gprof(GNU Profiler)
- 编译时添加
-pg选项。 - 运行程序生成
gmon.out,然后gprof ./program gmon.out > report.txt。 - 输出函数调用次数和耗时。
g++ -pg -o program source.cpp
./program
gprof ./program gmon.out > analysis.txt2. Valgrind(内存检查与性能)
- 内存泄漏:
valgrind --leak-check=full ./program - 性能分析(callgrind):
valgrind --tool=callgrind ./program,用 KCachegrind 可视化。
3. perf(Linux 内核性能工具)
- 采样 CPU 事件:
perf record -g ./program - 生成报告:
perf report - 可生成火焰图。
4. 编译器优化选项
-O2、-O3开启优化。-march=native针对当前 CPU 优化。- 谨慎使用
-fast,可能破坏标准。
性能分析应结合多种工具,定位热点后针对性优化。
