Oracle Solaris Studio 12.2:性能分析器

Solaris OS 下基于时钟的分析

在 Solaris OS 下基于时钟的分析中,将按固定的时间间隔存储每个 LWP 的状态。这种时间间隔称为分析间隔。这些信息存储在一个整数数组中:数组的一个元素用于内核维护的十个微记帐状态中的每一个状态。收集的数据通过性能分析器转换为每个状态所用的时间和分析间隔的精度。缺省分析间隔约为 10 毫秒 (10 ms)。收集器提供的高精度分析间隔大约为 1 ms,低精度分析间隔大约为 100 ms,如果 OS 允许,则可使用任意的间隔。运行 collect 命令(不带任何参数)可列显运行该命令的系统所允许的范围和精度。

下表定义了从基于时钟的数据计算得来的度量。

表 2–1 Solaris 计时度量

度量 

定义 

用户 CPU 时间 

在 CPU 中按用户模式运行所用的 LWP 时间。 

挂钟时间 

LWP 1 中所用的 LWP 时间。该时间通常称为“挂钟时间”。 

总 LWP 时间 

全部 LWP 时间的总和。 

系统 CPU 时间 

在 CPU 中或陷阱状态下按内核模式运行所用的 LWP 时间。 

等待 CPU 时间 

等待 CPU 所用的 LWP 时间。 

用户锁定时间 

等待锁定所用的 LWP 时间。 

文本缺页时间 

等待文本页所用的 LWP 时间。 

数据缺页时间 

等待数据页所用的 LWP 时间。 

其他等待时间 

等待内核页所用的 LWP 时间,或休眠/ 停止所用的时间。 

对于多线程实验,将计算所有 LWP 的时间(挂钟时间除外)的总和。所定义的挂钟时间对于多程序多数据 (multiple-program multiple-data, MPMD) 程序没有意义。

计时度量按多种类别说明程序消耗时间的位置,并且可用于改善程序的性能。