这是命令 perf-top,可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器
程序:
您的姓名
perf-top - 系统分析工具。
概要
PERF 最佳 [-e | --event=EVENT] [ ]
商品描述
此命令实时生成并显示性能计数器配置文件。
配置
-a, --all-cpus
全系统收集。 (默认)
-C , --计数=
要采样的事件周期。
-C , --cpu=
仅监控提供的 CPU 列表。 可以提供多个 CPU 作为一个
没有空格的逗号分隔列表:0,1。 CPU 的范围用 -: 0-2 指定。
默认是监视所有 CPU。
-d , --延迟=
刷新之间延迟的秒数。
-e , --事件=
选择 PMU 事件。 选择可以是一个符号事件名称(使用 PERF 名单 列出
所有事件)或 rNNN 形式的原始 PMU 事件(eventsel+umask),其中 NNN 是
十六进制事件描述符。
-E , --entries=
显示这么多功能。
-F , --count-filter=
只显示事件比这更多的函数。
- 团体
将计数器放入一个计数器组。
-F , --频率=
在这个频率上配置文件。
-i, --继承
子任务不继承计数器。
-k , --vmlinux=
vmlinux 的路径。 注释功能所必需的。
-m , --mmap-pages=
mmap 数据页的数量(必须是 XNUMX 的幂)或附加的大小规范
单位字符 - B/K/M/G。 大小四舍五入为最接近页面的 XNUMX 次方
计算值。
-p , --pid=
现有进程 ID(逗号分隔列表)上的配置文件事件。
-t , --tid=
现有线程 ID(逗号分隔列表)上的分析事件。
-u,--uid=
在 uid 拥有的线程中记录事件。 姓名或号码。
-r , --实时=
使用此 RT SCHED_FIFO 优先级收集数据。
--sym-annotate=
注释此符号。
-K, --隐藏内核符号
隐藏内核符号。
-U, --隐藏用户符号
隐藏用户符号。
--demangle-内核
Demangle 内核符号。
-D, --转储符号表
转储用于分析的符号表。
-v,--详细
更详细(显示计数器打开错误等)。
-z,--零
跨显示更新的零历史记录。
-s,--排序
按键排序:pid、comm、dso、symbol、parent、srcline、weight、local_weight、abort、
in_tx,交易,开销,样本,期间。 请参阅--sort 中的说明
性能报告手册页。
--字段=
指定输出字段 - 可以以 CSV 格式指定多个键。 以下字段
可用:overhead、overhead_sys、overhead_us、overhead_children、sample 和
时期。 它也可以包含任何排序键。
默认情况下,将附加 --field 中未指定的每个排序键
自动。
-n, --show-nr-样本
显示包含样本数的列。
--show-total-期间
显示包含句点总和的列。
--dsos
只考虑这些 dsos 中的符号。 此选项将影响百分比
架空柱。 有关更多信息,请参阅 --percentage。
--通讯
只考虑这些通信中的符号。 此选项将影响百分比
架空柱。 有关更多信息,请参阅 --percentage。
--符号
只考虑这些符号。 此选项将影响开销的百分比
柱子。 有关更多信息,请参阅 --percentage。
-M, --反汇编风格=
为 objdump 设置反汇编程序样式。
- 来源
将源代码与汇编代码交错。 默认启用,禁用
——无源。
--asm-原始
显示汇编指令的原始指令编码。
-g
启用调用图(堆栈链/回溯)记录。
--call-graph [模式、类型、最小值[、限制]、顺序[、键][、分支]]
设置和启用调用图(堆栈链/回溯)记录,意味着 -g。 看
详细信息请参见 perf-record 和 perf-report 手册页中的 --call-graph 部分。
- 孩子们
将子项的调用链累积到父项,以便随后可以显示在
输出。 输出将有一个新的“Children”列,并将按数据排序。
它需要启用 -g/--call-graph 选项。 请参阅“开销计算”部分了解
更多细节。
--最大堆栈
解析调用链时设置堆栈深度限制,任何超出指定的
深度将被忽略。 这是信息丢失和更快之间的权衡
尤其适用于可能具有很长调用链堆栈的工作负载。
默认值:127
--忽略被调用者=
忽略与给定正则表达式匹配的函数的被调用者。 这具有以下效果
将每个此类函数的调用者收集到调用图树中的一个位置。
--百分比限制
不要显示开销低于该百分比的条目。 (默认值:0)。
- 百分比
确定如何显示过滤条目的开销百分比。 过滤器可以
通过--comms、--dsos 和/或--symbols 选项和 TUI 上的缩放操作应用
(线程、dso 等)。
“相对”意味着它仅与过滤的条目相关,以便
显示条目的总和将始终为 100%。 “绝对”意味着它保留
应用过滤器前后的原始值。
-w, --column-widths=
强制每个列宽到提供的列表,以提高终端可读性。 0 表示
没有限制(默认行为)。
--proc-map-超时
在处理预先存在的线程 /proc/XXX/mmap 时,可能需要很长时间,因为
该文件可能很大。 在这种情况下需要暂停。 此选项设置时间
出限制。 默认值为 500 毫秒。
-b,--分支-任何
启用已采取的分支堆栈采样。 可以对任何类型的分支进行采样。 这是一个
--branch-filter any 的快捷方式。 有关更多信息,请参阅 --branch-filter。
-j,--分支过滤器
启用已采取的分支堆栈采样。 每个样本捕获一系列连续采集
分支。 每个样本捕获的分支数量取决于底层
硬件、感兴趣的分支类型和执行的代码。 有可能
选择通过启用过滤器捕获的分支类型。 完整列表
修饰符请参阅 perf 记录联机帮助页。
该选项至少需要 any、any_call、any_ret、ind_call、cond 中的一种分支类型。
权限级别可以省略,在这种情况下,关联的权限级别
事件应用于分支过滤器。 内核 (k) 和管理程序 (hv) 特权
级别受权限限制。 对多个事件采样时,分支栈采样
为所有采样事件启用。 所有事件的采样分支类型都相同。
各种过滤器必须指定为逗号分隔列表:--branch-filter any_ret,u,k
请注意,此功能可能并非在所有处理器上都可用。
互动 提示 KEYS
并[d]
显示刷新延迟。
并[e]
要显示的条目数。
[E]
当多个计数器处于活动状态时显示的事件。
[F]
配置文件显示过滤器(>= 命中数)。
[F]
注释显示过滤器(>= 总数的 %)。
[S]
注释符号。
[小]
停止注释,返回完整的个人资料显示。
[Z]
在显示更新之间切换事件计数归零。
[QQ]
放弃。
按任何未映射的键会显示一个菜单,并提示输入。
高架 计算
开销可以在两列中显示为 儿童 和 自 当 perf 收集
调用链。 这 自 开销是通过将所有周期值相加来计算的
条目 - 通常是一个函数(符号)。 这是 perf 传统上显示的值,并且
所有的总和 自 开销值应为 100%。
孩子 开销是通过将子函数的所有周期值相加来计算的,因此
它可以显示更高级别函数的总开销,即使它们没有
直接执行多了。 儿童 这里的意思是从另一个(父)调用的函数
功能。
所有这些的总和可能会令人困惑 孩子 开销值超过 100%,因为
每一个都已经是 自 其子函数的开销。 但是随着
启用此功能,即使样本是
蔓延到孩子们身上。
考虑以下示例; 有如下三个功能。
.ft C
无效 foo(void) {
/* 做点什么 */
}
空栏(空){
/* 做点什么 */
富();
}
诠释主要(无效){
酒吧()
0返回;
}
英尺
在这种情况下 FOO 是一个孩子 酒吧及 酒吧 是直系子 主 so FOO 也是一个
的孩子 主。 换一种说法, 主 是父母 FOO 和 酒吧及 酒吧 是父母
FOO.
假设所有样本都记录在 FOO 和 酒吧 只要。 当它用调用链记录时
输出将在 perf 的通常(仅自我开销)输出中显示如下内容
报告:
.ft C
架空符号
……………………
60.00% 富
|
--- 富
酒吧
主
__libc_start_main
40.00% 酒吧
|
- - 酒吧
主
__libc_start_main
英尺
启用 --children 选项后, 自 子函数的开销值(即
FOO 和 酒吧) 被添加到父母中以计算 孩子 高架。 在这种情况下
报告可以显示为:
.ft C
儿童自我符号
………………………………
100.00% 0.00% __libc_start_main
|
--- __libc_start_main
100.00% 0.00% 主要
|
- - 主要的
__libc_start_main
100.00% 40.00% 条形
|
- - 酒吧
主
__libc_start_main
60.00% 60.00% 富
|
--- 富
酒吧
主
__libc_start_main
英尺
在上面的输出中, 自 的开销 FOO (60%) 被添加到 孩子 的开销
酒吧, 主 和 __libc_start_main。 同样, 自 的开销 酒吧 (40%) 被添加到
孩子 的开销 主 和 __libc_start_main.
So __libc_start_main 和 主 首先显示,因为它们具有相同 (100%) 孩子
开销(即使他们有零 自 开销),他们是 FOO 和
酒吧.
从 v3.16 开始 孩子 默认情况下显示开销,输出按其排序
值。 这 孩子 通过指定 --no-children 选项来禁用开销
命令行或通过添加 报告儿童 = false or 孩子们 = false 在性能
配置文件。
使用 onworks.net 服务在线使用 perf-top