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通过浏览器去查看


GBase数据库
1 声望2 粉丝

GBase数据库知识分享