JavaScript is required to for searching.
跳过导航链接
退出打印视图
Oracle Solaris Studio 12.3:性能分析器     Oracle Solaris Studio 12.3 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  性能分析器概述

2.  性能数据

3.  收集性能数据

4.  性能分析器工具

5.  er_print 命令行性能分析工具

er_print 语法

度量列表

控制函数列表的命令

functions

metrics metric_spec

sort metric_spec

fsummary

fsingle function_name [N]

控制调用方-被调用方列表的命令

callers-callees

csingle function_name [N]

cprepend function-name [N | ADDR]

cappend function-name [N | ADDR]

crmfirst

crmlast

控制调用树列表的命令

calltree

控制泄漏和分配列表的命令

leaks

allocs

控制源代码和反汇编代码列表的命令

pcs

psummary

lines

lsummary

source|src { filename | function_name } [ N]

disasm|dis { filename | function_name } [ N]

scc com_spec

sthresh value

dcc com_spec

dthresh value

cc com_spec

控制源文件搜索的命令

setpath path_list

addpath path_list

pathmap old-prefix new-prefix

控制硬件计数器数据空间和内存对象列表的命令

data_objects

data_single name [N]

data_layout

memobj mobj_type

mobj_list

mobj_define mobj_type index_exp

控制索引对象列表的命令

indxobj indxobj_type

indxobj_list

indxobj_define indxobj_type index_exp

用于 OpenMP 索引对象的命令

OMP_preg

OMP_task

支持线程分析器的命令

races

rdetail race_id

deadlocks

ddetail deadlock_id

列出实验、抽样、线程和 LWP 的命令

experiment_list

sample_list

lwp_list

thread_list

cpu_list

控制实验数据过滤的命令

指定过滤表达式

filters filter_exp

列出过滤器表达式的关键字

describe

选择要进行过滤的抽样、线程、LWP 和 CPU

选择列表

选择命令

sample_select sample_spec

lwp_select lwp_spec

thread_select thread_spec

cpu_select cpu_spec

控制装入对象展开和折叠的命令

object_list

object_show object1,object2,...

object_hide object1,object2,...

object_api object1,object2,...

objects_default

object_select object1,object2,...

列出度量的命令

metric_list

cmetric_list

data_metric_list

indx_metric_list

控制输出的命令

outfile {filename|-|--}

appendfile 文件名

limit n

name { long | short } [ :{ shared_object_name | no_shared_object_name } ]

viewmode { user| expert | machine }

compare { on | off }

列显其他信息的命令

header exp_id

ifreq

objects

overview exp_id

statistics exp_id

设置缺省值的命令

dmetrics metric_spec

dsort metric_spec

en_desc { on | off | =regexp }

仅为性能分析器设置缺省值的命令

tabs tab_spec

rtabs tab_spec

tlmode tl_mode

tldata tl_data

杂项命令

procstats

script file

version

quit

help

表达式语法

示例过滤器表达式

er_print 命令示例

6.  了解性能分析器及其数据

7.  了解带注释的源代码和反汇编数据

8.  操作实验

9.  内核分析

索引

控制输出的命令

以下命令控制 er_print 显示输出。

outfile {filename|-|--}

关闭任何打开的输出文件,然后为后续输出打开 filename。打开 filename 时,将清除任何先前存在的内容。如果指定一个短划线 (-) 而不是 filename,则将输出写入标准输出。如果指定两个短划线 (--) 而不是 filename,则将输出写入标准错误。

appendfile 文件名

关闭任何打开的输出文件并打开 filename,保留任何先前存在的内容,以便将后续输出附加到文件的结尾。如果 filename 不存在,则 appendfile 命令的功能与 outfile 命令的功能相同。

limit n

将输出限制为报告中的前 n 个条目;n 是一个无符号正整数。

name { long | short } [ :{ shared_object_name | no_shared_object_name } ]

指定是使用长形式还是短形式的函数名称(仅限 C++ 和 Java)。如果指定了 shared_object_name,则将共享对象名称附加到函数名称。

viewmode { user| expert | machine }

将模式设置为以下模式之一:

user(用户)

对于 Java 实验,显示 Java 线程的 Java 调用堆栈,而不显示内务处理线程。函数列表包括函数 <JVM-System>,该函数表示来自非 Java 线程的聚集时间。当 JVM 软件不报告 Java 调用堆栈时,将根据函数 <no Java callstack recorded> 报告时间。

对于 OpenMP 实验,显示重构的调用堆栈,这些重构的调用堆栈类似于在不使用 OpenMP 的情况下编译程序时获取的调用堆栈。在 OpenMP 运行时执行某些操作时,添加名称格式为 <OMP-*> 的特殊函数。

expert

对于 Java 实验,在执行用户的 Java 代码时,将显示 Java 线程的 Java 调用堆栈,而在执行 JVM 代码或当 JVM 软件不报告 Java 调用堆栈时,则显示计算机调用堆栈。显示内务处理线程的计算机调用堆栈。

对于 OpenMP 实验,显示编译器生成的、代表并行化循环、任务等的函数,这些函数会与用户模式中的用户函数聚集。在 OpenMP 运行时执行某些操作时,添加名称格式为 <OMP-*> 的特殊函数。禁止 OpenMP 运行时代码 libmtsk.so 中的函数。

machine

对于 Java 实验和 OpenMP 实验,显示所有线程的实际本机调用堆栈。

对于除 Java 实验和 OpenMP 实验之外的所有实验,所有三种模式都显示相同的数据。

compare { on | off }

将比较模式设置为打开或关闭。缺省值是关闭,因此在读取同一个可执行文件上的多个实验时,会聚集数据。如果通过在 .er.rc 文件中设置 compare on 启用比较模式,且在同一个可执行文件上装入了多个实验,就会针对来自每个实验的数据分别显示度量列。此外,还可以使用 er_print compare 命令比较实验。

在比较模式中,实验或组中的数据显示在函数列表、调用方-被调用方列表以及源代码和反汇编代码列表的相邻列中。这些列按装入实验或组的顺序显示,同时带有一个给出实验或组名称的附加标题行。