Sun Studio 12: Performance Analyzer

Metric Lists

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


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.


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:


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

The allowed metric flavor characters are given in Table 6–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 6–1 Metric Flavor Characters




Show exclusive metric value 


Show inclusive metric value 


Show attributed metric value (for callers-callees metric only) 

Show dynamic metric value (for data-derived metrics only) 

The allowed metric visibility characters are given in Table 6–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 6–2 Metric Visibility Characters




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 6–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 6–3 Metric Name Strings




Timing metrics 


User CPU time 



Wall-clock time 



Total LWP time 



System CPU time 



CPU wait time 



User lock time 



Text-page fault time 



Data-page fault time 



Other wait time 

Synchronization delay metrics 


Synchronization wait time 



Synchronization wait count 

MPI tracing metrics 


Time spent in MPI calls 



Number of MPI send operations 



Number of bytes sent in MPI send operations 



Number of MPI receive operations 



Number of bytes received in MPI receive operations 



Number of calls to other MPI functions 

Memory allocation metrics 


Number of allocations 



Bytes allocated 



Number of leaks 



Bytes leaked 

Hardware counter overflow metrics 


CPU cycles 



Instructions issued 

Thread Analyzer metrics 


Data race accesses 




In addition to the name strings listed in Table 6–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.