1、简介
Perf 是用来进行软件性能分析的工具。
Linux性能计数器是一个基于内核的子系统,它提供一个性能分析框架,比如硬件(CPU、PMU)功能和软件(软件计数器、tracepoint)功能。
应用程序运行时,通过perf可以利用 PMU、tracepoint 和内核中的特殊计数器来进行性能统计。它不但可以分析指定应用程序的性能问题 ,也可以用来分析内核的性能问题,当然也可以同时分析应用代码和内核,从而全面理解应用程序中的性能瓶颈。
Perf 可以对程序进行函数级别的采样,从而了解程序的性能瓶颈在哪里。其基本原理是:每隔一个固定时间,就是CPU上产生一个中断,看当前是哪个进程、哪个函数,然后给对应的进程和函数加一个统计值,这样就知道CPU有多少时间在某个进程或某个函数上了。
2、名词解释
2.1 PMU
PMU(performance monitor unit) 性能监测单元。
PMU允许软件针对某种硬件事件设置 counter,此后处理器便开始统计该事件的发生次数,当发生的次数超过 counter 内设置的值后,便产生中断。比如 cache miss 达到某个值后,PMU 便能产生相应的中断。捕获这些中断,便可以考察程序对这些硬件特性的利用效率了。
2.2 tracepoint
Tracepoint 是散落在内核源代码中的一些 hook,一旦使能,它们便可以在特定的代码被运行到时被触发,这一特性可以被各种 trace/debug 工
Perf是一款强大的Linux性能分析工具,利用PMU、tracepoint等进行性能统计。它可以进行函数级别的采样,找出程序的性能瓶颈。本文介绍了PMU的概念,以及perf的安装、常用命令如perf list、perf stat、perf top、perf record和perf report,帮助开发者深入理解应用和内核的性能问题。
订阅专栏 解锁全文
4127

被折叠的 条评论
为什么被折叠?



