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