linux常用工具——perf性能分析
1. perf top
当我们尝试解决一个性能上的缺陷的时候,最难的就是定位问题,perf top可以快速的帮助你看到具体的是哪个程序导致的问题。
#perf top

2. perf record / perf report
使用perf record/perf report查看进程内部函数详细调用信息
1). 收集堆栈信息
#perf record (收集所有进程信息)
#perf record ./a.out (a.out是一个测试程序的可执行文件)
#perf record -p pid -g (pid是当前进程的pid)
2). 生成报告
#perf report

3.生成火焰图
1). 下载火焰图生成脚本
在使用火焰图之前你需要把生成火焰图的相关的脚本下载到本地:
#git clonehttps://github.com/brendangregg/FlameGraph
2). 收集堆栈信息
# perf record -p 181 -g
# perf script > out.perf
PS:如果使用火焰图打开后显示很多【unknown】,调整堆栈信息收集方式
# perf record -p 181 --call-graph dwarf
3). 折叠堆栈信息
# FlameGraph/stackcollapse-perf.pl out.perf > out.folded
4). 生成火焰图
# FlameGraph/flamegraph.pl out.folded > result.svg
5). 使用浏览器打开火焰图
