Oracle Solaris Studio 12.2:性能分析器

硬件计数器溢出的归属

除 UltraSPARC 平台上的 TLB 未命中外,硬件计数器溢出事件的调用栈按指令的顺序记录在后续的某些点上,而不是记录在发生溢出的点上,原因之一是处理由溢出产生的中断所用的时间。对于某些计数器(如发送的周期或指令),这种延迟无关紧要。对于其他计数器(例如,那些计数高速缓存未命中或浮点运算的计数器),度量被归属到导致溢出的指令之外的其他指令。通常,引起事件的 PC 只是记录的 PC 前的几条指令,而这些指令可以在反汇编代码列表中正确定位。但是,如果该指令范围内存在分支目标,那么要分辨哪条指令对应于引起事件的 PC 是很困难的,甚至是不可能的。对于计数内存访问事件的硬件计数器,如果该计数器名称带有加号 + 前缀,则收集器会搜索引起事件的 PC。以此方式记录的数据支持数据空间分析。有关更多信息,请参见数据空间分析-h counter_definition_1...[, counter_definition_n]