Sun Java Solaris Communities My SDN Account Join SDN

Sun Studio

Sun Studio Performance Analyzer

Developing high performance applications requires a combination of compiler features, libraries of optimized functions, and tools for performance analysis. The Sun Studio Performance Analyzer can help you assess the performance of your code, identify potential performance problems, and locate the part of the code where the problems occur. The Performance Analyzer can be used from the command line or from a graphical user interface.

The Performance Analyzer consists of two tools. The Collector collects performance data by profiling and tracing function calls. The data can include call stacks, microstate accounting information, thread-synchronization delay data, hardware-counter overflow data, 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 as well as profiling applications written in Java. 

The Performance Analyzer itself displays the data recorded by the Collector. It processes the data from the Collector 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: timing metrics, hardware counter metrics, synchronization delay metrics, memory allocation metrics, and MPI tracing metrics. The Analyzer also displays the raw data in a graphical format as a function of time.

 
NEW: Performance Analyzer Screencasts

Project lead Marty Itzkowitz demonstrates the basics of the Sun Studio Performance Analyzer, including Java profiling and hardware-counter profiling, in three new screencasts:

 
Latest Documentation: Sun Studio 12

Quick Start Guide to using the Performance Tools. (Updated March 2007)

Sun Studio Tools Forum
Ask questions about and discuss program performance analysis with the community and experts.
 
Reference Manual: Performance Analyzer
Complete reference for using the Collector and Analyzer and how to interpret the results. (The Performance Analyzer manual for Sun Studio 12 is not yet available. The updated reference manual will be ready soon. Watch this page for an announcement.) (November, 2005)

Reference Manual: Thread Analyzer User Guide
Details on compiling and running multi-threaded programs with the Thread Analyzer to detect deadlocks and data races. (June, 2007)

Readme: Performance Analyzer
Sun Studio 12 release information. (June, 2007)

Readme: Thread Analyzer
New tool for detecting and analyzing deadlocks and data races in multi-threaded programs. (June, 2007)

Command-Line Man Pages:
Sun Studio 12. (June, 2007)  
  • analyzer - GUI for analyzing a program performance experiment
  • collect - command used for performance data collection
  • collector - subcommands of dbx used for performance data collection
  • er_archive - construct function and module lists for a per formance experiment
  • er_cp - copy a performance experiment
  • er_export - dump raw data from a performance experiment
  • er_kernel - generate an experiment from the Solaris kernel using DTrace
  • er_mv - move a performance experiment
  • er_print - print an ASCII report from one or more perfor mance experiments
  • er_rm - remove performance experiments.
  • er_src - print source or dissasembly with interleaved compiler commentary
  • tha - launch the Sun Studio Thread Analyzer
 
Technical Articles
Memory Profiling With MPI Analyzer
This note explores memory profiling as discussed in an email thread and shows an example of how to distinguish between heavy-user program memory allocation versus memory allocations within the MPI implementation due to resource congestion.

Profiling MPI Applications
This article details the profiling of Message Passing Interface (MPI) applications with the Sun Studio Performance Tools. Get an overview of MPI performance data and learn how to compile and launch your application for performance profiling.

Introducing the Sun Studio Performance Tools
The Sun Studio performance tools are designed to help answer questions about application performance. This article discusses the kinds of performance questions that users typically ask and describes the model for using the tools, and for building the target executable, along with the data collection process, the data that can be collected. The article also describes the Analyzer and its displays, and shows a number of examples of what it can do and concludes with a testing strategy for the tools, and some planned extensions to their functionality.

Profiling Java Applications With Sun Studio Performance Tools
How to use the performance analyzer to profile Java applications.  (August 25, 2006)

Profiling WebSphere Application Servers with Sun Studio Performance Tools
This article describes how to profile an IBM WebSphere Application Server (WAS) runtime environment with the Sun Studio Performance Analysis Tools, Collector and Analyzer. (January 30, 2007)

Profiling WebLogic Servers With Sun Studio Performance Tools
WebLogic servers are Java applications that can also be profiled using the Sun Studio Performance Analyzer. This article shows how.  (August 25, 2006)

The Sun Studio Performance Tools
The Sun Studio Performance Tools are designed to help answer questions about application performance. This article discusses the kinds of performance questions that users typically ask. It describes the model for using the tools, and for building the target executable, as well as the data collection process, and the data that can be collected. The Analyzer and its displays are also described, along with a number of examples of what it can do.  (November 10, 2005)

Using UltraSPARC-IIICu Performance Counters to Improve Application Performance

Introduces you to the UltraSPARC-IIICu performance counters, and demonstrates how you might use the Sun Studio Performance Tools to identify where in your application these events are happening and how you can use this information to improve the performance of your application. (July 23, 2003)

» See all
 
 
Further Reading
Application Performance Optimization (pdf) by Börje Lindh
This Sun Blueprints[tm] Online article provides a brief introduction to optimization on the Solaris Operating Environment.

Techniques for Optimizing Applications: High Performance Computing by Rajat P. Garg and Ilya Sharapov
This Sun Blueprints Series book is a practical guide to performance optimization of computationally intensive programs on Sun UltraSPARC[tm] platforms. It is primarily intended for developers of technical or high performance computing (HPC) applications for the Solaris operating environment.
 

 
Talk To Our Engineers
  Sun software engineers, along with the Sun Studio community, read and respond to postings on the developer forum pages Join the conversation: Sun Studio Forums.