perf可以用于查看热点函数,查看cashe miss的比率,从而帮助开发者来优化程序性能,也可以分析程序运行期间发生的硬件事件,其中perf record是收集一段时间内的性能事件到文件 perf.data:
-e :指定性能事件(可以是多个,用,分隔列表)
-p:指定待分析进程的 pid(可以是多个,用,分隔列表)
-t:指定待分析线程的 tid(可以是多个,用,分隔列表)
-u:指定收集的用户数据,uid为名称或数字
-a:从所有 CPU 收集系统数据
-g:开启 call-graph (stack chain/backtrace) 记录
-C:只统计指定 CPU 列表的数据,如:0,1,3或1-2
-r :perf 程序以SCHED_FIFO实时优先级RT priority运行这里填入的数值越大,进程优先级越高(即 nice 值越小)
-c: 事件每发生 count 次采一次样
-F:每秒采样 n 次
-o:指定输出文件output.data,默认输出到perf.data
例如:
perf record -F 99 -a-g sleep 10
注:可以通过Ctrl+c 结束进程
对输出的perf.data 可以通过火焰图生成图片
perf script | /opt/FlameGraph-master/stackcollapse-perf.pl | /opt/FlameGraph-master/flamegraph.pl >1.svg
注:1.svg通过浏览器去查看
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。