Viewing and analyzing performance data

The primary views for viewing and analyzing performance data are the Performance Call Graph and the Method Details views. You can supplement these with the Package Statistics, Class Statistics, Method Statistics, Method Invocation, Method Invocation Table, Execution Flow, Execution Flow Table, and the UML2 Sequence Diagram views.

Prerequisite: Collecting performance data

  1. Display the Performance Call Graph: Right-click your profiling resource, and then in the pop-up menu select Open With > Performance Call Graph. By default, the call graph shows the following:

    • The 20 most time-consuming nodes in the profiling run, plus the "Process" node that represents the total time of the entire process. A node can represent a method, a process, or a thread.

    • The dynamic call structure of the program during the profiling run, shown by arcs linking the nodes. The most expensive call paths are indicated by the thickest lines.

    • Detailed performance information for each node and arc within the call graph. This information is displayed in tool-tips, which appear when you pause the mouse cursor over the node or arc.

  2. Double-click any method in the call graph to open the Method Details view, which presents the performance data from the point of view of the individual method. Clicking a method in either the Performance Call Graph or the Method Detail view synchronizes not only the other view, but also all open logging and profiling views.

  3. Examine the data for unexpectedly time-consuming methods and call paths. Both views present the same performance data, but in different formats. Important data items include the following:

    Data Item Description
    Caller A method that originated a call to another method (its descendant).
    Descendant A method that was called by another method (its caller).
    Calls The number of calls made to the Descendant by the Caller.
    Base Time The total time for the selected method, excluding the times for any descendant methods.
    Cumulative Time The sum of the Base Time for the selected method and the time spent on its behalf in its descendant methods.
    Propagated Time The total time spent in a Descendant on behalf of its Caller. For Callers in the Method Detail view, Propagated Time is time propagated to the currently displayed method; for Descendants, it is time propagated from the currently displayed method.

The following topics provide additional information to help you detect performance bottlenecks:

Getting information from the Performance Call Graph view
The Performance Call Graph view provides tools for focusing on data that indicates potential performance problems. This view displays not only an overview of the performance data collected for a profiling run, but also, when you pause the cursor over a method or calling path segment, detailed statistical information.

Getting information from the Method Details view
The Method Detail view provides tools for focusing on data that indicates potential performance problems. This view presents data for a single method, its callers, and its descendants.

Common causes of slow performance
The Performance Call Graph and Method Detail views help you identify the parts of your application that consume the most time. You can then investigate whether these time-consuming areas can be made more efficient. When you analyze the code for your application, it is useful to be aware of the most frequent coding errors that result in inefficient performance.

Opening source code from the Performance Call Graph or Method Details view
When you identify a method as a possible cause of a performance bottleneck, you can immediately display the source code, if available, for further analysis. Source code is available only if you are profiling a Java project that is currently open in the Java perspective.

Customizing the Performance Call Graph view
You can modify the Performance Call Graph display so that you can find information more easily.

 

Parent topic

Detecting performance bottlenecks

Related reference
The Performance Call Graph view
Performance Call Graph data commands
The Method Details view