This tutorial has three main purposes:
-
To provide simple examples of performance problems and how they can be identified.
-
To demonstrate the capabilities of the Performance Analyzer.
-
To show how the Performance Analyzer presents performance data and how it handles various code constructions.
The tutorial uses five example programs:
-
Example 1: Basic Performance Analysis. This example demonstrates the use of timing data to
identify a performance problem, shows how time is attributed to functions, source lines and instructions,
and shows how the Performance Analyzer handles recursive calls, dynamic loading of object
modules and descendant processes. The example illustrates the use of the main Analyzer displays:
the Functions tab, the Callers-Callees tab, the Source tab, the Disassembly tab and the Timeline tab.
The example program, synprog, is written in C.
-
Example 2: Analyzing the performance of a mixed Java/C++ application. This example demonstrates
how the analyzer handles interpreted and dynamically-compiled Java methods. The example program
jsynprog
, is written in the Java programming language and makes calls to native code
using JNI.
-
Example 3: OpenMP Parallelization Strategies. This example demonstrates the efficiency of different approaches to parallelization of a Fortran program, omptest, using OpenMP directives.
-
Example 4: Locking Strategies in Multithreaded Programs. This example demonstrates the efficiency of different approaches to scheduling of work among threads and the effect of data management on cache performance, making use of synchronization delay data. The example uses an explicitly multithreaded C program, mttest, that is a model of a client/server application.
-
Example 5: Cache Behavior and Optimization. This example demonstrates the effect of memory access and compiler optimization on execution speed for a Fortran 90 program, cachetest. The example illustrates the use of hardware counter data and compiler commentary for performance analysis.
In this tutorial, you copy the example programs to your own workspace and collect and analyze the performance data. For setup instructions, see Setting Up the Tutorial. For data collection instructions, tutorial instructions and commentary, choose from the following topics.
Basic Performance Analysis
Analyzing the Performance of a Mixed Java/C++ Application
OpenMP Parallelization Strategies
Locking Strategies in Multithreaded Programs
Cache Behavior and Optimization
The See Also section at the end of each topic contains links to other topics that provide information
about the concepts or GUI features that are referred to in the tutorial topic.
Can't find what you are looking for?
Submit your comments at http://www.sun.com/hwdocs/feedback.
Legal Notices