Java Call Stacks Report

The Java Call Stacks report shows the call stacks for the methods that were executing at the time the samples were taken for the Java application being measured. The methods are determined by examining the threads that are inside the JVM when the sample is taken. This can help identify possible sources of performance issues in the Java application by determining the methods where the application is spending most of its time. 

Information includes the following:

  • Method name: The name of the method that was executing as part of a call stack during the measurement.

  • Executing %: The percentage of the occurrences that the class was observed on the top of the call stack and in a 'Runnable' status. These methods are actively processing on the systems processors at the time of the measurement.

  • Non-executing %: The occurrences that the class was observed at the top of the stack and was in one of the other thread statuses (waiting, timed waiting, suspended, blocked, zombie). These methods are unable to perform processing at the time of the measurement, usually due to resources required to process being unavailable at the moment of the measurement.

  • Observed count: The number of times the method was observed at the top of a call stack during the measurement.

For example, assume there were two methods that were observed (method A and method B) for a total of 10 observations. Method A was observed executing 4 times and non-executing 1 time, while method B was observed executing 1 time and non-executing 4 times. The calculated percentages (<the observed count of method executions for this method> ÷ <the observed count of all method executions>) for those two methods would be as follows:

  • Method A: 40% executing and 10% non-executing = 5/10

  • Method B: 10% executing and 40% non-executing = 5/10

In this scenario, Method A could be investigated to determine whether it can be optimized to process more efficiently, and Method B could be investigated to determine what resources are preventing it from being able to complete its processing. 

To use the Java Call Stacks report

  1. Do one of the following:

    • On the JVM Information page, click a node in the Classes chart.

    • Click , then select Reports>Java Call Stacks.

The Java Call Stacks report appears.

  1. Select or clear the Include JVM internal methods check box to include or exclude methods run by the JVM and not as part of a specific application. Note that selecting this check box will also include Topaz for Java Performance collection data in the Java Call Stacks report. By default, this information is excluded. If changes are made to this setting, the report is automatically rerun and the report is refreshed.

  2. To get detailed information, do any of the following:

  • To expand a node, click or right-click the node and select Expand.

  • To collapse a node, click or right-click and select Collapse.

  • To fully expand the first branch under a selected node, right-click the node and select Expand Branch.

  • To collapse all nodes below the selected node, right-click and select Collapse All.

The subentries indicate the methods that called the top-level method.