perf 命令
perf 是用来进行软件性能分析的工具。通过它,应用程序可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。
它不但可以分析指定应用程序的性能问题,也可以用来分析内核的性能问题,当然也可以同时分析应用代码和内核,从而全面理解应用程序中的性能瓶颈。
perf list
使用 perf list 命令可以列出所有能够触发 perf 采样点的事件。
perf stat <program>
总体分析
perf top
用于实时显示当前系统的性能统计信息。该命令主要用来观察整个系统当前的状态,比如可以通过查看该命令的输出来查看当前系统最耗时的内核函数或某个用户进程。
perf record
perf record -a -e cycles -o cycle.perf -g sleep 10
-a 对所有 CPU 采样
-o 输出文件名,如果不指定,默认生成 perf.data
-g 额外记录函数调用关系
sleep 10 采样 10s
perf report
perf report -i <file>
-i 指定 perf record 生成的 perf data 文件,如果不指定 -i 则默认分析 perf.data 文件。
--max-stack=0 只输出第一层函数调用
--stdio 输出到标准输出