Call Tree
shows the calling structure of the program
The Call Tree shows the calling structure of the program as it ran and charts the relationship between callers and callees in the program. This report is a good way to get a sense of what is calling what in the program, and how much relative time is being spent where.
Each call site is a separate node on the chart. The relative horizontal size of a node indicates the cumulative time spent in the node's children. The relative vertical size of a node indicates the amount of time being spent performing the computation function in that particular node.
Nodes that contain only callers are green in color. Nodes for which there is performance data are dark green, while light-green nodes have no data of their own, only inclusive data bubbled up from their progeny.
By default, routines that do not lead to the top routines are hidden.
Nodes that contain callees and represent significant computation time also include stacked bar graphs, which present load-balancing information. The yellow bar in the background shows the maximum time, the pale purple in the foreground shows the minimum time, and the purple bar shows the average time spent in the function. The larger the yellow area visible within a node, the greater the load imbalance.
While the Call Tree report is displayed, options are:
- Hover the cursor over any node to further display quantitative data for that node.
- Double-click on leaf node to display a Load Balance report for that call site.
- If a "?" (question mark) icon is displayed on any node, this indicates that significant additional information pertinent to this node is available: for example, that the node has the highest load-imbalance time in the program and thus is a good candidate for optimization. Hover the cursor over the "?" icon to display additional information.
- For trace experiment data, right-click the report tab to display a popup menu. The options on this menu enable the user to change this report so that it shows all times as percentages or actual times, or highlights imbalance percentages and the potential savings from correcting load imbalances. This menu also enables the user to filter the report by time, so that only the nodes representing large amounts of time are displayed, or to unhide everything that has been hidden by other options and restore the default display.
- For sample experiment data, right-click on the report tab to display a popup menu. The options on this menu enable the user to change between number of samples and percentages, and to Filter Nodes by Samples.
- Right-click any node to display another popup menu. The options on this menu enable the user to hide this node, use this node as the base node (thus hiding all other nodes except this node and its children), or go to the source code, if available, or copy data.
- Use the zoom control in the lower right corner to change the scale of the graph. This can be useful when the user is trying to visualize the overall structure.
- Use the Search control in the lower center to search for a particular node by function name.
- Use the
>>toggle in the lower left corner to show or hide an index that lists the functions on the graph by name. When the index is displayed, the user can click a function name in the index to find that function in the Call Tree.