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.
- Open the Performance Call Graph view by right-clicking a profiling
resource in the Profiling Monitor, then click . Choose the profiling resource based on the data you want to display:
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.
- 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.
- 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: