oprofile
一、原理
在关注事件发生一定次数时,进行一次采样,记录下需要的信息(比如指令寄存器或栈寄存器信息)。
二、参数
项 说明
eventname 要关注的事件名称,常用的事件名称及功能如下:
CPU_CLK_UNHALTED(Clock cycles when not halted),就是CPU时钟: CPU的执行时间,性能测试时最常用的事件
LLC_MISSES: L2 cache失效情况。
DTLB_MISSES: 数据TLB失效情况。
一般做性能测试时只会用到CPU_CLK_UNHALTED。
count 事件抽样频率,oprofile并不是对每次事件都进行记录,而是进行抽样,每多少次事件进行一次数据收集,如果抽样太低,会导致事件数据的收集占用太多的cpu.因此每个事件,oprofile给了一个最小值,每类事件的最小值可以通过opcontrol --list-events查到。
unitmask 事件的掩码,通过opcontrol --list-events可查看相应事件的掩码意义,这里不细说了。
kernel 是否收集内核的事件。0表示不收集,1表示收集。
user 是否收集用户的事件。0表示不收集,1表示收集。