Call Graph


  The call graph shows a statically calculated thread resolved call graph for selected nodes. The nodes are methods, classes, packages, or Java EE components, depending on the selected aggregation level.

To calculate a call graph, click  Generate graph in the tool bar or select View->Generate Graph from JProfiler's main menu. If a graph has been calculated, the context menu also provides access to this action.

Before a graph is calculated, the call graph wizard is brought up. The resulting graph is static and can be re-calculated be executing  Generate graph again. The call graph wizard remembers your last selection.

  The call graph has the following properties:
  • Nodes are painted as rectangles. The rectangle includes information about
    • The node name (method name, class name, package name or or Java EE component name). For methods, no parameters are displayed. In order to see the parameters of a method, switch on signature tooltips in the call graph view settings or select the corresponding check item in the context menu.
    • The total time (including calls into unfiltered classes)
    • The inherent time (excluding calls into unfiltered classes)
    • The number of calls into this node
  • The node rectangles have a background coloring which - depending on the call graph view settings is taken from a gray to red scale for increasing
    • inherent time
    • or total time

    The percentage base is

    • the time spent in the displayed nodes only
    • or the time spent in all nodes
  • Calls are painted as arrows, the arrowhead points from the caller toward the callee. If you move the mouse over the call arrow, a tooltip window will be displayed that shows details for the particular call.
  • Call arrows have a color which is taken from a black to red scale for an increasing percentage in execution time. In this way you can spot the most important calls of a node without checking their tooltips one by one.

By default, the call graph only shows the direct incoming and outgoing calls of the initially selected nodes. You can expand the graph by double clicking on any node. This will expand the direct incoming and outgoing calls for that node. Selective actions for expanding the graph are available in the toolbar, the View menu and the context menu:

  •  Show calling nodes
  •  Show called nodes
  •  Add nodes to graph, to add other unrelated nodes to the graph. The node selection dialog will then be displayed.

If applicable, an node has plus signs at the left and the right side to show or hide calling and called nodes. The controls at the left side are for calling, the controls at the right side for called nodes. The plus signs have the same effect as the  Show calling nodes and the  Show called nodes actions. Additionally, the plus signs give you the indication that there might be nodes to display and that you have not yet tried to expand them.

You can hide nodes by selecting them and pressing the delete key. You can select multiple nodes and delete them together. Alternatively, you can select the  remove nodes from graph action from the graph toolbar or the context menu.

If you delete methods, the call graph may contain a number of unconnected branches. To clean up the graph, select a method on the branch that should be retained and select the  cleanup unconnected methods action from the graph toolbar or the context menu. The "remove all but selected nodes" action in the context method allows you to trim the graph to a few selected nodes.

The call graph offers a number of navigation and zoom options.