1 perf 安装
-
安装perf工具包:
sudo apt install linux-tools-common
-
执行perf提示:
WARNING: perf not found for kernel 5.4.0-89 You may need to install the following packages for this specific kernel: linux-tools-5.4.0-89-generic linux-cloud-tools-5.4.0-89-generic You may also want to install one of the following packages to keep up to date: linux-tools-generic linux-cloud-tools-generic
-
安装perf依赖工具:linux-tools-xxx
sudo apt install linux-tools-generic sudo apt install linux-tools-5.4.0-89-generic
注意
:这里可以用dpkg -l package-name-pattern——列出所有与模式相匹配的软件包。如果您不知道软件包的全名,您可以使用“package-name-pattern”。
查看已安装软件包的命令:https://www.cnblogs.com/wangkongming/p/4531341.html
也可以参考源码编译perf使用:https://www.cnblogs.com/codehello/articles/9229630.html
需要用到词法分析器flex:https://www.jianshu.com/p/f519fec5bc46
2 perf使用
- 针对运行中的进程PID,使用perf采样函数的调用频率(对于C/C++语言,为了能够显示完整的函数栈,需要在编译时加入-g选项),如下所示
perf record -F 99 -p 进程PID -g
- 一段时间后,使用Ctrl+C结束抓取,会看到当前目录下有一个data.perf文件,该文件是一个二进制信息的问题;
- 将二进制信息转换为ASCII格式的文件,方便可视化处理:
perf script > out.perf
perf使用:https://www.cnblogs.com/arnoldlu/p/6241297.html
3 查看分析
-
火焰图生成工具
git clone --depth 1 https://github.com/brendangregg/FlameGraph.git
-
处理数据格式
cd FlameGraph ./stackcollapse-perf.pl out.perf > out.folded
-
生成SVG格式矢量火焰图
cd FlameGraph ./flamegraph.pl out.folded > out.svg
gprof 性能分析工具
gprof(GNU profiler)是GNU binutils工具集中的一个工具,linux系统当中会自带这个工具。它可以分析程序的性能,能给出函数调用时间、调用次数和调用关系,找出程序的瓶颈所在。在编译和链接选项中都加入-pg之后,gcc会在每个函数中插入代码片段,用于记录函数间的调用关系和调用次数,并采集函数的调用时间。
atrace、strace、fstrace性能分析工具
原文链接: https://www.cnblogs.com/lihaihui1991/p/16046322.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/400311
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!