面试题答案
一键面试-
常用性能剖析工具:
- gprof:GNU profiler,是GNU binutils包中的一部分,用于生成程序中函数调用频率和时间消耗的统计信息。
- Valgrind:一个用于内存调试、内存泄漏检测以及性能剖析的软件开发工具。
-
使用gprof分析C代码性能瓶颈:
- 编译程序:使用
-pg
选项编译你的C代码。例如,假设你的代码文件名为test.c
,编译命令为gcc -pg -o test test.c
。-pg
选项会在目标代码中插入额外的代码,用于收集性能数据。 - 运行程序:像平常一样运行编译后的可执行文件
./test
。程序运行过程中,gprof插入的代码会收集函数调用信息,并在程序结束时生成一个名为gmon.out
的文件。 - 生成性能报告:运行
gprof
工具并指定生成的可执行文件和gmon.out
文件,命令为gprof test gmon.out
。gprof会分析gmon.out
文件中的数据,并生成详细的性能报告。报告中会列出每个函数的调用次数、总执行时间、每个调用的平均执行时间等信息。通过查看执行时间较长的函数,就能定位到性能瓶颈所在的函数,然后进一步分析这些函数内部的代码逻辑,优化性能。
- 编译程序:使用