11.3. 了解 perf 输出和符号解析
perf top 监控接口提供 CPU 使用量和功能活动的实时视图。了解其输出有助于识别性能瓶颈并优化系统行为。
- perf top 输出中的关键列
- 界面显示以下几列:
- 开销
-
显示给定功能消耗的 CPU 时间百分比。这有助于查明大多数
资源密集型操作。 - 共享对象
- 指明功能所在的程序或库的名称。
- 符号
显示函数或符号的名称。
- 在内核空间中运行的功能被标记为 [k]。
- 在用户空间中运行的功能被标记为 [.]。
- perf 输出中未解析的符号的原因
对于内核功能,
perf使用/proc/kallsyms文件中的信息将示例映射到其相应的功能名称或符号。对于用户空间中执行的功能,您可能会看到原始功能地址,因为二进制文件被剥离。可通过安装对应的 debuginfo 软件包或编译启用了调试的应用程序来包括此信息,比如在
gcc中使用 a-g选项。在提供必要的调试信息后,perf可以准确将抽样的地址映射到报告期间可读的功能名称。注意在提供调试信息后,不需要重新运行
perf record命令。再次运行perf report命令将反映已解析的符号。