性能分析与跟踪工具指南
在软件开发过程中,性能分析与跟踪是优化代码、排查问题的重要手段。本文将介绍多种性能分析和跟踪工具,包括它们的特点、使用方法以及适用场景。
1. 调用图(Call graphs)
在性能分析时,列表顶部的函数大多是底层内存操作,这些函数通常已被优化。为了了解这些函数的调用来源,可以使用 perf record
命令的 -g
选项捕获每个样本的回溯信息。
perf record -g
使用 perf report
查看结果时,函数属于调用链的部分会显示一个加号(+),可以展开跟踪查看调用链中更底层的函数。生成调用图依赖于从栈中提取调用帧的能力,就像在 GDB 中进行回溯一样。不过,并非所有架构和工具链的组合都支持这一操作。
2. perf annotate
当确定了要分析的函数后, perf annotate
可以帮助我们深入函数内部,查看代码并获取每条指令的命中次数。使用 perf annotate
替代 perf report
即可。
perf annotate
perf annotate
需要可执行文件和 vmlinux
的符号表。如果想查看与汇编代码交错的源代码,可