Oracle® Solaris Studio 12.4:性能分析器

退出打印视图

更新时间: 2015 年 1 月
 
 

度量列表

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

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

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

flavorvisibilityname

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

[visibility]name

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

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

表 5-1  度量类型字符
字符
说明
e
显示独占度量值
i
显示非独占度量值
a
显示归属度量值(仅适用于调用方-被调用方度量)
d
显示数据空间度量值(仅适用于数据派生的度量)

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

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

表 5-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 时间是否可见,性能分析器都应该按它排序。

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

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

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

表 5-3  度量名称字符串
类别
字符串
说明
时钟分析度量
total
总线程时间
totalcpu
CPU 总时间
user
用户 CPU 时间
system
系统 CPU 时间
trap
自陷 CPU 时间
lock
用户锁定时间
datapfault
数据缺页时间
textpfault
文本缺页时间
kernelpfault
内核缺页时间
stop
停止时间
wait
CPU 等待时间
sleep
休眠时间
硬件计数器度量
insts
发出的指令数
在所有支持的系统上可用。
cycles
CPU 周期
在大多数受支持的系统上可用。此外,每个处理器还有自己的一组计数器。可使用 collect -h 查看系统计数器的完整列表。
CPI
每指令周期数, 从 cyclesinsts 度量计算得到只有记录了两个计数器时才可用。
IPC
每周期指令数, 从 cyclesinsts 度量计算得到只有记录了两个计数器时才可用。
OpenMP 分析度量
ompwork
以串行或并行方式执行工作所用的时间
ompwait
OpenMP 运行时等待同步时所用的时间
masterthread
"Master Thread Time"(主线程时间)是主线程消耗的总时间。只能在 Solaris 实验中查看该时间。该时间与挂钟时间相对应。
同步延迟度量
sync
同步等待时间
syncn
同步等待计数
堆跟踪度量
heapalloccnt
分配的数量
heapallocbytes
分配的字节数
heapleakcnt
泄漏的数量
heapleakbytes
泄漏的字节数
I/O 跟踪度量
ioreadbytes
读取的字节数
ioreadcnt
读取计数
ioreadtime
读取时间
iowritebytes
写入的字节数
iowritecnt
写入计数
iowritetime
写入时间
ioothrcnt
其他 IO 计数
ioothertime
其他 IO 时间
ioerrornt
IO 错误计数
ioerrortime
IO 错误时间
线程分析器度量
raccesses
数据争用访问
deadlocks
死锁
MPI 跟踪度量
mpitime
MPI 调用所用的时间
mpisend
已启动 MPI 点对点发送数
mpibytessent
"MPI Sends"(MPI 发送次数)中的字节数
mpireceive
已完成 MPI 点对点接收数
mpibytesrecv
"MPI Receives"(MPI 接收次数)中的字节数
mpiother
对其他 MPI 函数的调用数
MPI 分析度量
mpiwork
在 MPI 运行时内执行工作(如处理请求或消息)所用的时间
mpiwait
在 MPI 运行时内等待事件、缓冲区或消息所用的时间

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

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