第 14 章 OProfile

OProfile 是一个低开销,系统范围配置集,使用处理器上的 performance-monitoring 硬件来检索系统中内核和可执行文件的信息,如引用内存、级别 2 缓存(L2)请求的数量以及接收的硬件中断的数量。它包含一个配置实用程序、用于收集数据的守护进程,以及用于将数据转换为人类可读形式的多个工具。有关 Red Hat Developer Toolset 版本所发布的工具的完整列表,请参阅 表 14.1 “使用 OProfile 为 Red Hat Developer Toolset 分发的工具”

OProfile 配置集了一个应用程序而无需添加任何检测的应用程序,方法是记录每九个事件的详情。这样,它可以消耗比 Valgrind 少的资源,但它也会导致其样本更精确。与 Valgrind 仅收集单个进程及其在用户空间中的子代数据不同,OProfile 非常适合收集用户空间和内核空间进程上的系统范围数据,并且需要 root 特权才能运行。

Red Hat Developer Toolset 带有 OProfile 1.4.0

表 14.1. 使用 OProfile 为 Red Hat Developer Toolset 分发的工具

Name描述

operf

使用 Linux 性能事件子系统记录单个进程或系统范围的示例。

opannotate

从性能分析数据生成注解的源文件或装配列表。

oparchive

生成包含可执行、调试和示例文件的目录。

opgprof

生成与 gprof 兼容的配置集会话概述。

ophelp

显示可用事件的列表。

opimport

将外部二进制格式中的示例数据库文件转换为原生格式。

opjitconv

将即时(JIT)转储文件转换为可执行文件和可链接格式(ELF)。

opreport

生成性能分析会话的镜像和符号摘要。

ocount

用于计算受监控命令的期间内特定事件发生次数的新工具。

14.1. 安装 OProfile

在 Red Hat Developer Toolset 中,OProfile 由 devtoolset-11-oprofile 软件包提供,并自动安装 devtoolset-11-perftools,如 第 1.5 节 “安装 Red Hat Developer Toolset” 所述。