NOTE: Inclusive times include the time spent in called methods. Therefore, for recursive calls, the same time is accumulated many times, depending on the depth of the recursion. When this happens, a recursive method may show an inclusive time that is greater than the inclusive time shown for its parent method.

TIP: To see the list of all callers of a given method, double-click on the method name.

The line showing repaint is marked in red. This is because a node showing this method is already expanded elsewhere in the tree. Note that all recursive calls will appear in red (unless you expand the red node), but not all red nodes indicate a recursive call!

Options for Manipulating the Call Tree Display

You have several options for adjusting the display to better reveal the data that you want to see.

Tree Pruning

For the trees showing time, arcs with values of less than 50 are not shown by default to avoid cluttering the display with arcs that are not essential for locating performance bottleneck. However, because the time units are generally abstract, and because your application may have run exceptionally long (or briefly), this threshold (cut-off value) can be modified. Use TreePrune to change the cut-off value.

You'll have a choice of changing the value just for the current tree, or changing the default. The latter will be valid for all windows, but will not affect the trees that are already displayed.

Another form of pruning is available for the Object Reference Graph. To keep the size of the displayed data manageable, arrays of references can be only partially represented on the screen. The pruning mechanism controls the maximum number of elements from each reference array that will be shown.

Auto-Expanding the Call Tree

Quite often the tree nodes that you would like to work with are deep in the tree. To see them, you need to expand the entire call chain leading from the root to the nodes of interest. To assist in this task, and to help locate the nodes that are good candidates for analysis in the top-down approach, use the TreeAuto Expand function that automatically expands the tree and selects the nodes that seem to correspond to complex high-level operations.

Naturally, the tool's choice may be incorrect. In any case, your analysis should not end at the nodes selected for you by HPjmeter.

Using Sub-Trees

Excessive expansion of the tree makes the display hard to navigate. It also slows down scrolling.

You can get rid of the usually uninteresting, higher layers of the tree by selecting one or more nodes and then executing TreeSet As Root(s). This will replace the current roots of the displayed tree with the selected nodes. You can repeat this command more than once, if necessary.

To restore the original tree, use TreeRestore Roots.

Using Call Graph Trees 77