一、OProfile的简介
OProfile 是Linux系统下一个系统全局的性能监视工具。它使用处理器上的性能监视硬件来检索关于内核以及系统上的可执行文件的信息,例如内存是何时被引用的;L2 缓存请求数量;收到的硬件中断数量等。
二、OProfile的用途
OProfile可以用于测试内核和应用。
三、OProfile的使用
a. 初始化:opcontrol --init
该命令会加载oprofile.ko模块,mount oprofilefs。成功后会在/dev/oprofile/目录下导出一些文件和目录
如:cpu_type, dump, enable, pointer_size, stats/
b. 配置:
opcontrol --setup --event=CYCLES:1000::0:1
处理器运行于核心态则不计数,运行于用户态则计数。
--event=name:count:unitmask:kernel:user
name:event name, e.g. CYCLES or ICACHE_MISSES
count:reset counter value e.g. 100000
unitmask: hardware unit mask e.g. 0x0f
kernel:
whether to profile kernel: 0 or 1
user:
whether to profile userspace: 0 or 1
oprofile 可以分析处理器周期、TLB 失误、分支预测失误、缓存失误、中断处理程序,等等。
设置计数事件为CYCLES,即对处理器时钟周期进行计数。
样本计数为1000,即每1000个时钟周期,oprofile 取样一 次。
可以使用opcontrol --list-events 列出当前处理器上可监视事件列表。
c. 启动:opcontrol --start
d. 运行待分析之程序:./test
e.取出数据:opcontrol --dump
opcontrol --stop
f. 分析结果:opreport -l ./test
四、OProfile的参考文档
1
.
http://blogold.chinaunix.net/u2/86537/showart_1970536.html
对oprofile一个简单的介绍。
2.http://oss.org.cn/ossdocs/gnu_linux/redhat/rhel-sag-zh_cn-3/ch-oprofile.html
redhat的关于oprofile的官方文档。
3.http://oprofile.sourceforge.net/doc/index.html
oprofile的用户手册。
4.http://archive.cnblogs.com/a/1941459/
androd下面怎么用oprofile。