Linux Perf (Index)

1、内核态解析:

1.1、perf_event内核框架

1.2、tracepoint events

1.3、software events

1.4、hardware events

2、用户态解析:

2.1、simpleperf

perf工作的基础是trace数据的采集和分析,但是当铺天盖地的trace数据采集上来的时候该如何分析?答案是具体数据具体分析。

perf在trace数据分析方面取得了很多成果,针对一系列具体场景给出了具体的分析工具(子命令):

  • perf list。
  • perf stat。
  • perf record/report。

perf的trace数据采集方面,既复用了ftrace的插桩法,还引入了采样法(硬件PMU)。可以从更多维度来提供trace数据。

因为perf原生的用户态工具(kerneldir/tools/perf)交叉编译出错较多,用户态源码分析改用android简化版simpleperf来分析。

本文如果不作说明,默认采用kernel 4.4的代码进行解析。