Sun Studio 12:性能分析器

度量列表

许多 er_print 命令都使用度量关键字的列表。列表的语法如下:


metric-keyword-1[:metric-keyword2…]

对于动态度量(它们基于度量的数据),度量关键字包含以下三部分:度量类型字符串、度量可见性字符串和度量名称字符串。这些字符串连接在一起且没有空格,如下所示。


flavorvisibilityname

对于静态度量-它们基于实验中装入对象的静态属性(名称、地址和大小),度量关键字包含度量名称和可选的前置度量可见性字符串,两者连接在一起且没有空格:


[visibility]name

度量 flavor 和度量 visibility 字符串由类型和可见性字符组成。

表 6–1 中列出了允许的度量类型字符。包含多个类型字符的度量关键字可扩展为一系列度量关键字。例如,ie.user 可扩展为 i.user:e.user

表 6–1 度量类型字符

字符 

说明 

e

显示独占度量值 

i

显示包含度量值 

a

显示归属度量值(仅适用于调用者-被调用者度量) 

显示动态度量值(仅适用于数据派生的度量) 

表 6–2 中列出了允许的度量可见性字符。可见性字符串中可见性字符的顺序无关紧要:它不影响对应度量的显示顺序。例如,i%.useri.%user 都解释为 i.user:i%user

仅可见性不同的度量始终按标准顺序一起显示。如果仅可见性不同的两个度量关键字由某些其他关键字分隔,则度量按标准顺序出现在两个度量中第一个度量的位置。

表 6–2 度量可见性字符

字符 

说明 

.

将度量显示为时间。适用于计时度量以及度量循环计数的硬件计数器度量。其他度量解释为 "+"。

%

将度量显示为总程序度量的百分比。对于调用者-被调用者列表中的归属度量,将度量显示为所选函数的包含度量的百分比。 

+

将度量显示为绝对值。对于硬件计数器,该值是事件计数。计时度量解释为 "."。

!

不显示任何度量值。不能与其他可见性字符组合使用。 

当类型字符串和可见性字符串都具有多个字符时,首先扩展类型。因此,将 ie.%user 扩展为 i.%user:e.%user,然后将其解释为 i.user:i%user:e.user:e%user

对于静态度量,句点 (.)、加号 (+) 和百分号 (%) 这三种可见性字符在用于定义排序顺序时是等效的。因此,sort i%usersort i.usersort i+user 均表示只要包含用户 CPU 时间以任一形式可见,分析器就应该按它排序;而 sort i!user 则表示不管包含用户 CPU 时间是否可见,分析器都应该按它排序。

对于每种度量类型,可以使用叹号 (!) 可见性字符覆盖内置可见性缺省值。

如果同一度量在度量列表中出现多次,则仅处理第一次出现的该度量,而忽略随后出现的该度量。如果指定的度量不在列表中,则将它附加到列表中。

表 6–3 中列出了计时度量、同步延迟度量、内存分配度量、MPI 跟踪度量以及两个常见的硬件计数器度量的可用 er_print 度量名称字符串。对于其他硬件计数器度量,度量名称字符串与计数器名称相同。通过 metric_list 命令,可以获取已装入实验的所有可用度量名称字符串的列表。通过使用不带参数的 collect 命令,可以获取计数器名称的列表。有关硬件计数器的更多信息,请参见硬件计数器溢出分析数据

表 6–3 度量名称字符串

类别 

字符串 

说明 

计时度量 

user

用户 CPU 时间 

 

wall

挂钟时间 

 

total

总 LWP 时间 

 

system

系统 CPU 时间 

 

wait

CPU 等待时间 

 

ulock

用户锁定时间 

 

text

文本缺页时间 

 

data

数据缺页时间 

 

owait

其他等待时间 

同步延迟度量 

sync

同步等待时间 

 

syncn

同步等待计数 

MPI 跟踪度量 

mpitime

MPI 调用所用的时间 

 

mpisend

MPI 发送操作的数量 

 

mpibytessent

在 MPI 发送操作中发送的字节数 

 

mpireceive

MPI 接收操作的数量 

 

mpibytesrecv

在 MPI 接收操作中接收的字节数 

 

mpiother

对其他 MPI 函数的调用数 

内存分配度量 

alloc

分配的数量 

 

balloc

分配的字节 

 

leak

泄漏的数量 

 

bleak

泄漏的字节 

硬件计数器溢出度量 

cycles

CPU 周期 

 

insts

发出的指令 

线程分析器度量 

raccesses

数据争用访问 

 

deadlocks

死锁 

除了表 6–3 中列出的名称字符串外,还有两个只能在缺省度量列表中使用的名称字符串。这两个名称字符串是 hwc(它与任何硬件计数器名称匹配)和 any(它与任何度量名称字符串匹配)。另请注意,cyclesinsts 对于 SPARC® 平台和 x86 平台是通用的,但是还存在特定于体系结构的其他类型的名称字符串。要列出所有可用的计数器,请使用不带参数的 collect 命令。

要查看在已装入的实验中可用的度量,请使用 metric_list 命令。