Oracle® Solaris Studio 12.4:性能分析器教程

退出打印视图

更新时间: 2014 年 12 月
 
 

检查 mttest 的硬件计数器分析实验

本节介绍如何了解通过上一节中 mttest 样例代码创建的实验中的数据。

  1. mttest 目录启动性能分析器并装入实验,如下所示:

    % analyzer test.1.er

    实验打开时,性能分析器将显示 "Overview"(概述)页面。

    image:mttest 样例实验的 “Overview“(概述)页面

    首先显示时钟分析度量并包括带颜色的条。大多数线程时间花费在 "User CPU Time"(用户 CPU 时间)中。一些时间花费在 "Sleep Time'(休眠时间)或 "User Lock Time"(用户锁定时间)中。

    如果同时记录了 cyclesinsts 计数器,则将显示 "Derived and Other Metrics"(派生的度量和其他度量)组。派生的度量表示这两个计数器中的度量比率。高的 "Instructions Per Cycle"(每个周期的指令数)值或低的 "Cycles Per Instruction"(每个指令的周期数)值表示效率相对较高的代码。相反,低的 "Instructions Per Cycle"(每个周期的指令数)值或高的 "Cycles Per Instruction"(每个指令的周期数)值则表示效率相对较低的代码。

    "HW Counter Profiling"(HW 计数器分析)组在此实验中显示两个子组,即 "Dataspace Hardware Counters"(数据空间硬件计数器)和 "General Hardware Counters"(常规硬件计数器)。"Instructions Executed"(执行的指令)计数器 (insts) 在 "General Hardware Counters"(常规硬件计数器)下列出。如果您收集的数据包括 cycles 计数器,则在 "General Hardware Counters"(常规硬件计数器)下还将列出 "CPU Cycles"(CPU 周期)。如果数据是在具有精确 dcm 计数器的计算机上收集的,则 "L1 D-cache Misses"(L1 数据高速缓存未命中次数)将在 "Dataspace Hardware Counters"(数据空间硬件计数器)下列出。如果 dcm 计数器可用但不是精确计数器,则 "L1 D-cache Misses"(L1 数据高速缓存未命中次数)将在 "General Hardware Counters"(常规硬件计数器)下列出。精确计数器是在执行导致溢出的指令时产生溢出中断的计数器。幅度可变的“失控”越过导致溢出的指令时提供非精确计数器。即使非精确计数器与内存相关,它也不能用于数据空间分析。有关数据空间分析的更多信息,请参见Oracle Solaris Studio 12.4:性能分析器 中的数据空间分析和内存空间分析

    如果您的系统不支持 dcm,且您编辑了 Makefile 以删除 –h dcm,则会看到 "Instructions Executed"(执行的指令)和 "CPU Cycles"(CPU 周期)计数器。如果编辑了 Makefile 以同时删除 –h dcm–h cycles,则只能看到 "Instructions Executed"(执行的指令)计数器。

您将在本教程接下来的几节中了解这些度量及其解释。