暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Perf的简单学习

济南小老虎 2025-05-02
148

简介

perf 是 Linux 提供的一个强大的性能分析工具,
用于收集和分析系统性能数据。
它基于 Linux 内核的性能事件子系统(perf_events),
可以用于分析 CPU 使用情况、内存访问模式、I/O 操作、上下文切换等。
perf 提供了丰富的功能,可以帮助开发者和系统管理员优化系统性能。

主要功能
1. 性能分析:
收集和分析 CPU 使用情况、缓存命中率、分支预测等性能指标。
2. 火焰图生成:
通过 perf record 和 perf report 命令生成火焰图,直观展示性能瓶颈。
3. 硬件和软件性能计数器:
支持多种硬件性能计数器(如缓存未命中、分支未命中)和软件性能计数器
(如上下文切换、页面错误)。
4. 事件跟踪:
支持对特定事件(如系统调用、中断)的跟踪和分析。
5. 多核和多线程分析:
支持多核和多线程环境下的性能分析。


基本使用

perf record -g -o output.data -- <command
-g:启用调用图(call graph)收集。
-o output.data:指定输出文件,默认为 perf.data。
<command>:要分析的命令或程序。 
或者使用 -p 指定具体的进程. 

perf report -i output.data
-i output.data:指定输入文件,默认为 perf.data。

perf top
显示实时系统热点

perf stat
显示程序的性能统计信息


--no-children的极简使用

perf record -F 1000 -p 1657699  -g sleep 180
perf record -F 1000 -p 1871027  -g sleep 180

不增加子函数的实践,可以比较简洁的查看那些入口函数占用的时间多
如果发现很多是wait spin 啥的可以判断 是系统空转比较多. 


文章转载自济南小老虎,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论