快捷搜索:  汽车  科技

linux操作系统实现技术教程:linux常用工具 perf性能分析

linux操作系统实现技术教程:linux常用工具 perf性能分析#perf report2). 生成报告#perf record (收集所有进程信息)#perf record ./a.out (a.out是一个测试程序的可执行文件)#perf record -p pid -g (pid是当前进程的pid)

1. perf top

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

#perf top

linux操作系统实现技术教程:linux常用工具  perf性能分析(1)

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

linux操作系统实现技术教程:linux常用工具  perf性能分析(2)

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). 使用浏览器打开火焰图

linux操作系统实现技术教程:linux常用工具  perf性能分析(3)

4. 引用文档

【性能分析】火焰图

http://blog.leanote.com/post/quanjiedeng/linux-性能分析

使用 perf 进行性能分析时如何获取准确的调用栈:

https://gaomf.cn/2019/10/30/perf_stack_traceback/

猜您喜欢: