火焰图的使用和分析

一、perf的使用

perf record:保存perf追踪的内容,文件名为perf.data

perf 命令参数 perf [--version] [--help] [OPTIONS] COMMAND [ARGS]
 -a: 表示对所有cpu采样
-C:显示指定CPU上的性能统计信息
-c:事件的采样周期
--call-graph dwarf: 表示分析调用栈的关系 -p: 表示分析指定进程 -t:指定线程TID
-K: 隐藏内核统计信息
-U: 隐藏用户空间的统计信息
-g: 记录函数间的调用关系,等同于-call-graph fp,即通过frame pointer跟踪,如果优化掉,可以通过dwarf,lbr进行跟踪
-e: 指定事件:task-clock、context-switches、page-faults、cycles、instructions、branches和branch-misses

perf report:   解析perf.data的内容

-i :输入的数据文件 perf  report -i perf.data > perf.txt
perf report -n --stdio:统计每个调用栈的百分比

 

二、火焰图的生成。

1、采集原始CPU消耗数据:perf record -e cpu-clodk -g -p 3578 -o perf.data,

统计大概1-2分钟,ctrl+c中断即可。

 

2、使用perf script工具分析perf.data文件:perf script -i perf.data &> perf.unfold。

3、将perf.unfold文件中的符号进行折叠:./stackcollapse-perf.pl perf.unflod &> perf.folded。

4、生成svg图:./flamegraph.pl perf.folded > perf.svg

5、perf.svg直接打开,或者在chrom中查看即可,查看平顶的这种。

三、火焰图的分析。

posted @ 2021-03-17 10:19  月光下的脚步  阅读(499)  评论(0编辑  收藏  举报