资讯

展开

perf性能分析工具

作者:快盘下载 人气:

        perf是performance的简称;最常用的性能分析工具。一款随linux内核代码一同发布和维护的性能诊断工具。linux内核2.6.31加入performance Counter, 内核2.6.32改为performance Event。

        跟随linux内核发布的perf是一个基于内核的子系统;它提供一个性能分析框架。其利用硬件;CPU、PMU;Performance Monitoring Unit;;功能和软件;软件计数器、tracepoint;功能来进行性能统计。

        Perf 可以对程序进行函数级别的采样;从而了解程序的性能瓶颈在哪里。其基本原理是;每隔一个固定时间;就是CPU上产生一个中断;看当前是哪个进程、哪个函数;然后给对应的进程和函数加一个统计值;这样就知道CPU有多少时间在某个进程或某个函数上了。使用 Perf 可以计算每个时钟周期内的指令数;称为 IPC。可以获取耗时的TOP函数等。

软件计数器

其中软件计数器能保存进程切换、tick数等数据。通过tick数;可以获取top函数;制作火焰图等。

PMU

Performance Monitor Unit;性能监视单元;其是CPU提供的一个单元;属于硬件的范畴。通过访问相关的寄存器能读取到CPU的一些性能数据;目前大部分CPU都会提供相应的PMU。PMU硬件产生的事件;比如cache命中。

tracepoints

tracepoints是散落在内核源码中的一些hook;它们可以在特定的代码被执行到时触发;这一特性可以被各种trace/debug工具所使用。比如保存内存分配的次数。perf将tracepoint产生的时间记录下来;生成报告;通过分析这些报告;调优人员便可以了解程序运行期间内核的各种细节;对性能症状做出准确的诊断。

这些tracepint的对应的sysfs节点在/sys/kernel/debug/tracing/events目录下。

参考如下文章等;

perf性能分析工具使用分享_良知犹存的博客-CSDN博客_perf report怎么看​​​​​​​

学会使用perf性能分析工具--这一篇就够了_漫游嵌入式的博客-CSDN博客_perf工具

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!