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

er_print command Examples

This section provides some examples for using the er_print command.

Example 5-8 Show summary of how time is spent in functions

er_print -functions test.1.er

Example 5-9 Show caller-callee relationships

er_print -callers-callees test.1.er

Example 5-10 Show which source lines are hot

Source-line information assumes the code was compiled and linked with -g. Append a trailing underscore to the function name for Fortran functions and routines. The 1 after the function name is used to distinguish between multiple instances of myfunction.

er_print -source  myfunction 1 test.1.er

Example 5-11 Filter functions named myfunc from the user function stack:

er_print -filters 'FNAME("myfunc") SOME IN USTACK' -functions test.1.er

Example 5-12 Generate output similar to gprof

The following example generates a gprof-like list from an experiment. The output is a file named er_print.out which lists the top 100 functions, followed by caller-callee data, sorted by attributed user time for each.

er_print -outfile  er_print.out -metrics e.%user -sort e.user \
-limit 100 -func -callers-callees test.1.er

You can also simplify this example into the following independent commands. However, keep in mind that each call to er_print in a large experiment or application can be time intensive.

er_print -metrics  e.%user -limit 100  -functions test.1.er
er_print -metrics  e.%user -callers-callees test.1.er

Example 5-13 Show only the compiler commentary

It is not necessary to run your program in order to use this command.

er_src -myfile.o

Example 5-14 Use wall-clock profiling to list functions and callers-callees

er_print -metrics  ei.%wall -functions test.1.er
er_print -metrics aei.%wall  -callers-callees test.1.er

Example 5-15 Run a script containing er_print commands

er_print -script myscriptfile test.1.er

The myscriptfile script contains er_print commands. A sample of the script file contents follows:

## myscriptfile

## Send script output to standard output
outfile -

## Display descriptive information about the experiments
header

## Write out the sample data for all experiments
overview

## Write out execution statistics, aggregated over 
## the current sample set for all experiments
statistics

## List functions
functions

## Display status and names of available load objects
object_list


## Write out annotated disassembly code for systime, 
## to file disasm.out
outfile disasm.out
disasm systime


## Write out annotated source code for synprog.c 
## to file source.out
outfile source.out
source synprog.c

## Terminate processing of the script
quit