-a, --all-cpus | 系统范围的采集(默认的) |
-c , --count= | 采样的事件周期 |
-C , --cpu= | 仅仅监控提供的CPU列表。多个CPU可以提供一个逗号分隔的列表,不能有空格,如0,1 ,可以用-表示多个cpu的一个范围,如0-2 。默认是监控所有的CPU |
-d , --delay= | 刷新之间延迟的秒数 |
-e , --event= | 选择PMU(Performance Monitoring Unit)事件.被选择的可以是一个符号化的事件名称(使用perf list 命令可以列出所有的事件),或者是一个原始的PMU事件(eventsel+umask),形式如rNNN 其中的NNN 是一个十六进制的事件描述符 |
-E , --entries= | 展示Display this many functions |
-f , --count-filter= | Only display functions with more events than this. |
–group | 将计数器放到一个计数器组中 |
-F , --freq= | 以这个频率来进行性能剖析 |
-i, --inherit | 子任务不继承计数器 |
-k
, --vmlinux=
| 到vmlinux这种内核文件的路径,注释功能需要。 |
-m , --mmap-pages= | mmap的数据页数(必须为2的次方),或者尾部带有单位字符(B |
-p , --pid= | 在已经存在的进程ID上进行剖析,逗号分隔的列表 |
-t , --tid= | 在已经存在的线程ID上进行剖析,逗号分隔的列表 |
-u, --uid= | 记录由uid拥有的线程的事件。名字或者数字都可以 |
-r , --realtime= | 用这个RT SCHED_FIFO优先级来收集数据 |
–sym-annotate= | 注释此符号。 |
-K, --hide_kernel_symbols | 隐藏内核符号 |
-U, --hide_user_symbols | 隐藏用户空间符号 |
–demangle-kernel | 分解内核符号 |
-D, --dump-symtab | 转储用于剖析的符号表 |
-v, --verbose | Be more verbose (show counter open errors, etc). |
-z, --zero | 显示更新的历史记录为零 |
-s, --sort | 按关键字排序,可以多个key排序。 pid, comm, dso, symbol, parent, srcline, weight, local_weight, abort, in_tx, transaction, overhead, sample, period。参考perf report中的–sort |
–fields= | 指定输出字段。多个key可以用CSV格式指定。下面的字段是可用的overhead, overhead_sys, overhead_us, overhead_children, sample and period。当然可以包含任何排序key。默认情况下每个没有在这里指定的排序key都会自动加上 |
-n, --show-nr-samples | 展示带有采样数的一列 |
–show-total-period | 展示带有各采样周期和的一列 |
–dsos | 仅仅考虑在这些dsos中的符号。这个选项将影响overhead列的百分比 |
–comms | 仅仅考虑在这些comms中的符号。这个选项将影响overhead列的百分比 |
–symbols | 仅仅考虑这些符号。这个选项将影响overhead列的百分比 |
-M, --disassembler-style= | 给objdump设置反汇编器风格 |
–source | 源代码与汇编代码交织在一起。 默认情况下启用,使用–no-source禁用。 |
–asm-raw | 显示汇编指令的原始指令编码。 |
-g | 启用调用图(stack chain/backtrace)记录。 |
–call-graph [mode,type,min[,limit],order[,key][,branch]] | 设置并启用调用图(stack chain/backtrace)记录,暗含-g |
–children | 将子级的调用链累积到父项,以便随后可以显示在输出中。输出将有一个新的“ Children”列,并将按数据进行排序。 它要求必须启用-g /-call-graph选项。 有关更多详细信息,请参见“开销计算”部分。 默认情况下启用,使用–no-children禁用。 |
–max-stack | 解析调用链时设置堆栈深度限制,超出指定深度的任何内容都将被忽略。 这是在信息丢失和更快的处理之间做出的权衡,尤其是对于可能具有非常长的调用链堆栈的工作负载而言。默认值:/ proc / sys / kernel / perf_event_max_stack(如果存在),否则为127。 |
–ignore-callees= | 忽略与给定正则表达式匹配的函数的被调用者。 这具有将每个这样的函数的调用者收集到调用图树中的一个位置中的效果。 |
–percent-limit | 不要显示开销低于该百分比的条目。 (默认值:0) |
–percentage | 确定如何显示已过滤条目的开销百分比。 可以通过–comms,-dsos和/或–symbols选项以及TUI上的Zoom操作(线程,dso等)应用过滤器。相对表示它仅与过滤的条目有关,因此显示的条目之和始终为100%。 绝对表示在应用过滤器之前和之后均保留原始值。 |
-w, --column-widths=<width[,width…]> | 强制将每列宽度设置为提供的列表,以提高终端可读性。 0表示没有限制(默认行为)。 |
–proc-map-timeout | 在处理预先存在的线程/proc/XXX/mmap 时,可能需要很长时间,因为文件可能很大。 在这种情况下,需要超时。 此选项设置超时限制。 默认值为500毫秒。 |
-b, --branch-any | 启用已采取的分支堆栈采样。 可以对任何类型的采用分支进行采样。 这是–branch-filter any的快捷方式。 有关更多信息,请参见–branch-filter。 |
-j, --branch-filter | 启用分支栈采样.每个样本捕获一系列连续的分支。 每个样本捕获的分支数量取决于基础硬件,相关分支的类型以及执行的代码。 通过启用过滤器可以选择捕获的分支类型。 有关修饰符的完整列表,请参见性能记录手册页。该选项要求any,any_call,any_ret,ind_call和cond中至少一种分支类型。 特权级别可以省略,在这种情况下,关联事件的特权级别将应用于分支过滤器。 内核(k)和管理程序(hv)特权级别均受许可权的约束。 在多个事件上采样时,将为所有采样事件启用分支堆栈采样。 所有事件的采样分支类型均相同。 必须将各种过滤器指定为以逗号分隔的列表:–branch-filter any_ret,u,k请注意,此功能可能并非在所有处理器上都可用。 |
–raw-trace | 显示traceevent输出时,不使用print fmt或插件。 |
–hierarchy | 启用层次化的输出 |
–force | 不要进行所有权验证 |
–num-thread-synthesize | 当合成已经存在的进程的事件时要运行的线程数。默认情况下,线程数等于在线CPU数。 |