Sun Studio 12:性能分析器

硬件计数器溢出分析

硬件计数器溢出分析数据包括计数器 ID 和溢出值。该值可能大于计数器的溢出设置值,因为处理器在事件的溢出和记录之间执行某些指令。尤其对循环和指令计数器来说,该值可能会更大,这些计数器的递增频率比诸如浮点运算或高速缓存未命中次数的计数器更快。记录事件中的延迟还意味着,通过调用栈记录的程序计数器地址并不精确对应于溢出事件。有关更多信息,请参见硬件计数器溢出的归属。另请参见陷阱的讨论。陷阱和陷阱处理程序可以导致报告的用户 CPU 时间和循环计数器报告的时间有很大差别。

收集的数据量取决于溢出值。选择过小的值可能会产生以下结果。

选择过大的值可能导致溢出过少,不利于统计。最后一次溢出后产生的计数被归属到收集器函数 collector_final_counters。如果在此函数中看到一大部分计数,则表明溢出值过大。