Perf工具及火焰图

perf工具常用命令
1、Perf Stat:分析性能(Ctrl +C 结束收集)
perf stat -p $pid -d     # 进程级别统计
perf stat -a -d sleep 5  # 系统整体统计


2、Perf Top:实时显示系统/进程的性能统计信息
# 默认性能事件为 cycles ( CPU 周期数 )。与 Linux top tool 功能类似
perf top -p $pid -g     # 进程级别
perf top -g  # 系统整体

3、Perf Record:记录一段时间内系统/进程的性能事件
# 默认性能事件为 cycles ( CPU 周期数 )。
perf record -p $pid -g #进程采样
perf record -p $pid -g -e cycles -e cs #进程采样,指定事件
perf record -a -g -e cycles -e cs #系统整体采样


4、perf report: 统计每个调用栈出现的百分比,然后从高到低排列。
# 读取perf record创建的数据文件(默认读取当前目录perf.data),
perf report -n --stdio
perf结果转换火焰图
1、下载火焰图工具
# 工具源码内部脚本文件可以直接使用
git clone https://github.com/brendangregg/FlameGraph.git
    
2、记录
# 执行频率是 99Hz(每秒99次)
perf record -F 99 -p 13204 -g -- sleep 30

3、用perf script工具对perf.data进行解析
perf script -i perf.data &> perf.unfold


4、将perf.unfold中的符号进行折叠:
FlameGraph/stackcollapse-perf.pl perf.unfold &> perf.folded

5、最后生成svg图:
FlameGraph/flamegraph.pl perf.folded > perf.svg

6、浏览器打开svg文件

你可能感兴趣的