|Skip Navigation Links|
|Exit Print View|
|Oracle Solaris Studio 12.3: Performance Analyzer Oracle Solaris Studio 12.3 Information Library|
This manual describes the Collector and Performance Analyzer, a pair of tools that you use to collect and analyze performance data for your application. The manual also describes the er_print utility, a command-line tool for displaying and analyzing collected performance data in text form. The Analyzer and er_print utility show mostly the same data, but use different user interfaces.
An additional Oracle Solaris Studio tool called Spot can be used to produce a performance report about your application. This tool is complementary to the Performance Analyzer. See the spot(1) man page for more information.
The Collector and Performance Analyzer are designed for use by any software developer, even if performance tuning is not the developer’s main responsibility. These tools provide a more flexible, detailed, and accurate analysis than the commonly used profiling tools prof and gprof and are not subject to an attribution error in gprof.
The Collector and Performance Analyzer tools help to answer the following kinds of questions:
How much of the available resources does the program consume?
Which functions or load objects are consuming the most resources?
Which source lines and instructions are responsible for resource consumption?
How did the program arrive at this point in the execution?
Which resources are being consumed by a function or load object?
The Collector tool collects performance data using a statistical method called profiling and by tracing function calls. The data can include call stacks, microstate accounting information (on Oracle Solaris platforms only), thread synchronization delay data, hardware counter overflow data, Message Passing Interface (MPI) function call data, memory allocation data, and summary information for the operating system and the process. The Collector can collect all kinds of data for C, C++ and Fortran programs, and it can collect profiling data for applications written in the Java programming language. It can collect data for dynamically-generated functions and for descendant processes. See Chapter 2, Performance Data for information about the data collected and Chapter 3, Collecting Performance Data for detailed information about the Collector. The Collector can be run from the Performance Analyzer GUI, from the dbx command line tool, and using the collect command.
The Performance Analyzer tool displays the data recorded by the Collector, so that you can examine the information. The Performance Analyzer processes the data and displays various metrics of performance at the level of the program, the functions, the source lines, and the instructions. These metrics are classed into five groups:
Clock profiling metrics
Hardware counter metrics
Synchronization delay metrics
Memory allocation metrics
MPI tracing metrics
The Performance Analyzer's Timeline displays the raw data in a graphical format as a function of time.
The Performance Analyzer can also display metrics of performance for structures in the dataspace of the target program, and for structural components of the memory subsystem. This data is an extension of the hardware counter metrics.
In addition, the Performance Analyzer can display data for the Thread Analyzer, a specialized view of the Performance Analyzer that is designed for examining thread analysis experiments. A separate command, tha, is used to start the Performance Analyzer with this specialized view, and the tool when started in this way is known as the Thread Analyzer.
The Thread Analyzer can show data races and deadlocks in experiments that you can generate specifically for examining these types of data. A separate manual, the Oracle Solaris Studio 12.3: Thread Analyzer User’s Guide describes how to use the Thread Analyzer.
See Chapter 4, The Performance Analyzer Tool and the online help in the Performance Analyzer for detailed information about the Performance Analyzer.
Chapter 5, The er_print Command Line Performance Analysis Tool describes how to use the er_print command line interface to analyze the data collected by the Collector.
Chapter 6, Understanding the Performance Analyzer and Its Data discusses topics related to understanding the Performance Analyzer and its data, including: how data collection works, interpreting performance metrics, call stacks and program execution.
Chapter 7, Understanding Annotated Source and Disassembly Data provides an understanding of the annotated source and disassembly, providing explanations about the different types of index lines and compiler commentary that the Performance Analyzer displays. Annotated source code listings and disassembly code listings that include compiler commentary but do not include performance data can be viewed with the er_src utility, which is also described in this chapter.
Chapter 8, Manipulating Experiments describes how to copy, move, and delete experiments; add labels to experiments; and archive and export experiments.
Chapter 9, Kernel Profiling describes how you can use the Oracle Solaris Studio performance tools to profile the kernel while the Oracle Solaris operating system is running a load.
Note - You can download demonstration code for the Performance Analyzer in the sample applications zip file from the Oracle Solaris Studio 12.3 Sample Applications downloads page at http://www.oracle.com/technetwork/server-storage/solarisstudio/downloads/.
After downloading, you can extract the zip file in a directory of your choice. The sample applications are located in the PerformanceAnalyzer subdirectory of the SolarisStudioSampleApplications directory. See the README file in each sample directory for information about how to use the sample code with the Analyzer.
The er_print utility presents in plain text all the displays that are presented by the Performance Analyzer, with the exception of the Timeline display, the MPI Timeline display, and the MPI Chart display. These displays are inherently graphical and cannot be presented as text.