JavaScript is required to for searching.
Skip Navigation Links
Exit Print View
Oracle Solaris Studio 12.2: Performance Analyzer
search filter icon
search icon

Document Information

Preface

1.  Overview of the Performance Analyzer

2.  Performance Data

3.  Collecting Performance Data

4.  The Performance Analyzer Tool

5.  The er_print Command Line Performance Analysis Tool

er_print Syntax

Metric Lists

Commands That Control the Function List

functions

metrics metric_spec

sort metric_spec

fsummary

fsingle function_name [N]

Commands That Control the Callers-Callees List

callers-callees

csingle function_name [N]

cprepend function-name [N | ADDR]

cappend function-name [N | ADDR]

crmfirst

crmlast

Commands That Control the Call Tree List

calltree

Commands That Control the Leak and Allocation Lists

leaks

allocs

Commands That Control the Source and Disassembly Listings

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

Commands That Control Hardware Counter Dataspace and Memory Object Lists

data_objects

data_single name [N]

data_layout

memobj mobj_type

mobj_list

mobj_define mobj_type index_exp

Commands That Control Index Object Lists

indxobj indxobj_type

indxobj_list

indxobj_define indxobj_type index_exp

Commands for the OpenMP Index Objects

OMP_preg

OMP_task

Commands That Support the Thread Analyzer

races

rdetail race_id

deadlocks

ddetail deadlock_id

Commands That List Experiments, Samples, Threads, and LWPs

experiment_list

sample_list

lwp_list

thread_list

cpu_list

Commands That Control Filtering of Experiment Data

Specifying a Filter Expression

filters filter_exp

Listing Operand Tokens for a Filter Expression

describe

Selecting Samples, Threads, LWPs, and CPUs for Filtering

Selection Lists

Selection Commands

sample_select sample_spec

lwp_select lwp_spec

thread_select thread_spec

cpu_select cpu_spec

Commands That Control Load Object Expansion and Collapse

object_list

object_show object1,object2,...

object_hide object1,object2,...

object_api object1,object2,...

objects_default

object_select object1,object2,...

Commands That List Metrics

metric_list

cmetric_list

data_metric_list

indx_metric_list

Commands That Control Output

outfile { filename | - }

appendfile filename

limit n

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

viewmode { user| expert | machine }

compare { on | off }

Commands That Print Other Information

header exp_id

ifreq

objects

overview exp_id

statistics exp_id

Commands That Set Defaults

dmetrics metric_spec

dsort metric_spec

en_desc { on | off | =regexp}

Commands That Set Defaults Only For the Performance Analyzer

tabs tab_spec

rtabs tab_spec

tlmode tl_mode

tldata tl_data

Miscellaneous Commands

procstats

script file

version

quit

help

Expression Grammar

Example Filter Expressions

er_print command Examples

6.  Understanding the Performance Analyzer and Its Data

7.  Understanding Annotated Source and Disassembly Data

8.  Manipulating Experiments

9.  Kernel Profiling

Index

Metric Lists

Many of the er_print commands use a list of metric keywords. The syntax of the list is:

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

For dynamic metrics, those based on measured data, a metric keyword consists of three parts: a metric flavor string, a metric visibility string, and a metric name string. These are joined with no spaces, as follows.

flavorvisibilityname

For static metrics, those based on the static properties of the load objects in the experiment (name, address, and size), a metric keyword consists of a metric name, optionally preceded by a metric visibility string, joined with no spaces:

[visibility]name

The metric flavor and metric visibility strings are composed of flavor and visibility characters.

The allowed metric flavor characters are given in Table 5-1. A metric keyword that contains more than one flavor character is expanded into a list of metric keywords. For example, ie.user is expanded into i.user:e.user.

Table 5-1 Metric Flavor Characters

Character
Description
e
Show exclusive metric value
i
Show inclusive metric value
a
Show attributed metric value (for callers-callees metric only)
d
Show data space metric value (for data-derived metrics only)

The allowed metric visibility characters are given in Table 5-2. The order of the visibility characters in the visibility string does not matter: it does not affect the order in which the corresponding metrics are displayed. For example, both i%.user and i.%user are interpreted as i.user:i%user .

Metrics that differ only in the visibility are always displayed together in the standard order. If two metric keywords that differ only in the visibility are separated by some other keywords, the metrics appear in the standard order at the position of the first of the two metrics.

Table 5-2 Metric Visibility Characters

Character
Description
.
Show metric as a time. Applies to timing metrics and hardware counter metrics that measure cycle counts. Interpreted as “+” for other metrics.
%
Show metric as a percentage of the total program metric. For attributed metrics in the callers-callees list, show metric as a percentage of the inclusive metric for the selected function.
+
Show metric as an absolute value. For hardware counters, this value is the event count. Interpreted as a “.” for timing metrics.
!
Do not show any metric value. Cannot be used in combination with other visibility characters.

When both flavor and visibility strings have more than one character, the flavor is expanded first. Thus ie.%user is expanded to i.%user:e.%user, which is then interpreted as i.user:i%user:e.user:e%user .

For static metrics, the visibility characters period (.), plus (+), and percent sign (%), are equivalent for the purposes of defining the sort order. Thus sort i%user, sort i.user, and sort i+user all mean that the Analyzer should sort by inclusive user CPU time if it is visible in any form, and sort i!user means the Analyzer should sort by inclusive user CPU time, whether or not it is visible.

You can use the visibility character exclamation point (!) to override the built-in visibility defaults for each flavor of metric.

If the same metric appears multiple times in the metric list, only the first appearance is processed and subsequent appearances are ignored. If the named metric is not on the list, it is appended to the list.

Table 5-3 lists the available er_print metric name strings for timing metrics, synchronization delay metrics, memory allocation metrics, MPI tracing metrics, and the two common hardware counter metrics. For other hardware counter metrics, the metric name string is the same as the counter name. You can get a list of all the available metric name strings for the loaded experiments with the metric_list command. A list of counter names can be obtained by using the collect command with no arguments. See Hardware Counter Overflow Profiling Data for more information on hardware counters.

Table 5-3 Metric Name Strings

Category
String
Description
Timing metrics
user
User CPU time
wall
Wall-clock time
total
Total LWP time
system
System CPU time
wait
CPU wait time
ulock
User lock time
text
Text-page fault time
data
Data-page fault time
owait
Other wait time
Clock-based profiling metrics
mpiwork
Time spent inside the MPI runtime doing work, such as processing requests or messages
mpiwait
Time spent inside the MPI runtime, but waiting for an event, buffer, or message
ompwork
Time spent doing work either serially or in parallel
ompwait
Time spent when OpenMP runtime is waiting for synchronization
Synchronization delay metrics
sync
Synchronization wait time
syncn
Synchronization wait count
MPI tracing metrics
mpitime
Time spent in MPI calls
mpisend
Number of MPI point-to-point sends started
mpibytessent
Number of bytes in MPI Sends
mpireceive
Number of MPI point-to-point receives completed
mpibytesrecv
Number of bytes in MPI Receives
mpiother
Number of calls to other MPI functions
Memory allocation metrics
alloc
Number of allocations
balloc
Bytes allocated
leak
Number of leaks
bleak
Bytes leaked
Hardware counter overflow metrics
cycles
CPU cycles
insts
Instructions issued
Thread Analyzer metrics
raccesses
Data race accesses
deadlocks
Deadlocks

In addition to the name strings listed in Table 5-3, two name strings can only be used in default metrics lists. These are hwc, which matches any hardware counter name, and any, which matches any metric name string. Also note that cycles and insts are common to SPARC platforms and x86 platforms, but other flavors also exist that are architecture-specific. To list all available counters, use the collect command with no arguments.

To see the metrics available from the experiments you have loaded, use the metric_list command.