perf工具

安装:

Ubuntu:安装需要一系列的linux-tools

sudo apt-get install linux-tools-common提示需要安装generic

sudo apt-get install linux-tools-4.x.x-x-generic找不到

sudo apt-get install linux-source-4.x.x.x下载解压后make && make install出错

sudo apt-get update upgrade成功但还是要去安装generic

找了很多帖子,但是他们所用的方法我都没成功(有依赖或者需要安装包)。

未解决原因:

对ubuntu操作系统内核不熟,一些相关概念如package,一些基本操作如apt-get,不清楚他们怎么用。

搜索时间有限。

PS:localhost不知道怎么就装好了。

CentOS:实验室服务器上是CentOS,直接yum install perf就好了。

介绍:

perf is a performance analysis tool for Linux 是linux内核的性能调优工具。从内核2.6开始,内核就自带perf这个工具了。

后续的内核版本只需要安装和本内核版本适配的linux tools就可以使用。

其他工具如:oprofile,gprof,stap等

基本命令和操作:

perf list:

原理是根据tick中断进行采样,即在tick中断内触发采样点,在采样点里判断程序当时的上下文。加入一个程序90%的时间都花费在foo()函数上,那么90%的采样点都应该在foo()的上下文中。

热点指的是最耗时的代码片段,应该优化热点代码。

能触发采样的事件:

hardware event,如cache命中

software event,如内核进程切换

tracepoint event,判断内核行为?

perf stat:

stat是使用perf时优先考虑的一个参数。

编译文件需加-g选项,如gcc -o hello -g hello.c

执行,perf stat ./hello

perf top:

perf record && perf report

查找时间上的热点函数

perf record -g -e cpu-clock ./hello

perf report

相关推荐