Oracle® Developer Studio 12.5:性能分析器教程

退出打印视图

更新时间: 2016 年 6 月
 
 

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

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

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

% analyzer test.1.er

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

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

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

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

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

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

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