perf 是用来进行软件性能分析的工具。经过它,应用程序能够利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计。函数
它不但能够分析指定应用程序的性能问题,也能够用来分析内核的性能问题,固然也能够同时分析应用代码和内核,从而全面理解应用程序中的性能瓶颈。工具
perf list性能
使用 perf list 命令能够列出全部可以触发 perf 采样点的事件。spa
perf stat <program>code
整体分析blog
perf top进程
用于实时显示当前系统的性能统计信息。该命令主要用来观察整个系统当前的状态,好比能够经过查看该命令的输出来查看当前系统最耗时的内核函数或某个用户进程。事件
perf recordio
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 输出到标准输出