perf工具使用
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会在每个函数中插入代码片段,用于记录函数间的调用关系和调用次数,并采集函数的调用时间。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南