程序中的数据流可能会导致低效率。
在最粗糙的粒度下,不良的数据管理可以导致非常多的数据页错误。可以通过检查“数据错误”计时度量来查找这些错误。读取大量的数据或访问广泛分布于数据空间中的内存位置都会导致页错误。其中一些错误是不可避免的,因为程序必须至少读取一次数据。其它错误则可通过仔细的数据管理来避免。
请求的数据项未映射时,会发生另一种数据流延迟。这将导致数据后备式数据转换缓冲 (DTLB) 未命中。对于数据页错误,第一个未命中是必要的(以便访问数据项),但其它未命中是可以避免的。您可以在 UltraSPARCTM III Cu 硬件上记录 DTLB 硬件计数器的数据(例如,使用计数器名称的 dtlb 别名)并检查相应的度量。
程序中的数据流还可能导致数据缓存未命中。可以通过检查数据缓存未命中和数据缓存延迟周期的度量,找出这些问题的发生位置及时间。要查看这些度量,您必须收集相应的硬件计数器上溢分析数据。在 UltraSPARC?III 处理器系列上,您可以使用 dcrm、dcwm 和 dcstall 别名来记录硬件计数器的数据,这些计数器对数据缓存读信息丢失、数据缓存写信息丢失和数据缓存延迟周期进行计数。