Skip Navigation Links | |
Exit Print View | |
Oracle Solaris Studio 12.3: Performance Analyzer Oracle Solaris Studio 12.3 Information Library |
1. Overview of the Performance Analyzer
3. Collecting Performance Data
4. The Performance Analyzer Tool
5. The er_print Command Line Performance Analysis Tool
Commands That Control the Function List
Commands That Control the Callers-Callees List
cprepend function-name [N | ADDR]
cappend function-name [N | ADDR]
Commands That Control the Call Tree List
Commands That Control the Leak and Allocation Lists
Commands That Control the Source and Disassembly Listings
source|src { filename | function_name } [ N]
disasm|dis { filename | function_name } [ N]
Commands That Control Searching For Source Files
Commands That Control Index Object Lists
indxobj_define indxobj_type index_exp
Commands for the OpenMP Index Objects
Commands That Support the Thread Analyzer
Commands That List Experiments, Samples, Threads, and LWPs
Commands That Control Filtering of Experiment Data
Specifying a Filter Expression
Listing Keywords for a Filter Expression
Selecting Samples, Threads, LWPs, and CPUs for Filtering
Commands That Control Load Object Expansion and Collapse
object_show object1,object2,...
object_hide object1,object2,...
object_api object1,object2,...
object_select object1,object2,...
name { long | short } [ :{ shared_object_name | no_shared_object_name } ]
viewmode { user| expert | machine }
Commands That Print Other Information
Commands That Set Defaults Only For the Performance Analyzer
6. Understanding the Performance Analyzer and Its Data
For experiments collected with hardware counter profiling and dataspace profiling, you can view metrics related to the following:
Data objects - program constants, variables, arrays and aggregates such as structures and unions, along with distinct aggregate elements, described in source code.
Memory objects - components in the memory subsystem, such as cache lines, pages, and memory banks. The object is determined from an index computed from the virtual or physical address as recorded. Memory objects are predefined for virtual and physical pages, for sizes of 8KB, 64KB, 512KB, and 4MB. You can define others with the mobj_define command.
This data can only be collected on Solaris objects compiled with the -xhwcprof compiler option on SPARC architectures.
See Hardware Counter Overflow Profiling Data and for more information about these types of data. See -h counter_definition_1...[,counter_definition_n] for information about the command line used to perform hardware counter overflow profiling.
For information about the -xhwcprof compiler option, see the Oracle Solaris Studio 12.3: Fortran User’s Guide, the Oracle Solaris Studio 12.3: C User’s Guide, or the Oracle Solaris Studio 12.3: C++ User’s Guide.
Write the list of data objects with their metrics.
Write the summary metrics panel for the named data object. The optional parameter N is needed for those cases where the object name is ambiguous. When the directive is on the command-line, N is required; if it is not needed, it is ignored.
Write the annotated data object layouts for all program data objects with data-derived metric data, sorted by the current data sort metric values for the structures as a whole. Each aggregate data object is shown with the total metrics attributed to it, followed by all of its elements in offset order, each with their own metrics and an indicator of its size and location relative to 32-byte blocks.
Write the list of the memory objects of the given type with the current metrics. Metrics used and sorting as for the data space list. You can also use the name mobj_type directly as the command.
Write the list of known types of memory objects, as used for mobj_type in the memobj command.
Define a new type of memory objects with a mapping of VA/PA to the object given by the index_exp. The syntax of the expression is described in Expression Grammar.
The mobj_type must not already be defined. Its name must be entirely composed of alphanumeric characters or the ’_’ character, and begin with an alphabetic character.
The index_exp must be syntactically correct. If it is not syntactically correct, an error is returned and the definition is ignored.
The <Unknown> memory object has an index of -1, and the expression used to define a new memory object should support recognizing <Unknown>. For example, for VADDR-based objects, the expression should be of the following form:
VADDR>255?expression :-1
and for PADDR-based objects, the expression should be of the following form:
PADDR>0?expression:-1