Displaying and analyzing performance data

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

Prerequisite: Collecting performance data or Importing performance data

  1. Open the Performance Call Graph view by right-clicking a profiling resource in the Profiling Monitor, then click Open With > Performance Call Graph. Choose the profiling resource based on the data you want to display:
    • To display data for a single run of a program running on a single machine, right-click the Performance Call Graph Analysis or Execution Time Analysis profiling resource.
    • To display data for multiple runs of the program, right-click the host that contains the data collected for all processes.
    • To display data collected on the server and client for a distributed program, right-click the monitor that contains the data collected for the server and client.
      Note: To display data from multiple runs or distributed programs, you must also turn on Distributed Layout in the Profiling Monitor drop-down menu.

    By default, the call graph shows the following information:

    • The 20 most time-consuming nodes in the profiling run, plus one or more "summary" nodes to the left of the graph. These nodes represent the sum of all time spent at the following levels:
      • The process
      • The host and the processes, if you are displaying data for multiple processes
      • The monitor, the hosts, and the processes, if you are displaying server and client data

      In addition to representing processes, hosts, and monitors, a node can represent a method or a thread.

      The node at the far left of the graph, from which all other nodes descend, is called the root node.

    • 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 ToolTips, which are shown when you pause the mouse cursor over the node or arc.
    • For distributed applications, broken lines representing a call to methods across the server and client. A method on the client side represents a stub method; the corresponding true method is on the server side.
  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. These are some of the important data items:
    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:
Related reference
The Performance Call Graph view
Data commands in the Performance Call Graph and Method Details views
The Method Details view
Feedback
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.