Stack reports

You can use the Performance Measurement tool to generate stack reports. Stack reports include the measurements for the stack of operations that are used when you run a sample operation.

You can use this stack information to help troubleshoot potential performance problems by identifying the slowest or fastest operations in the stack. You can also use this information to determine the average execution time for operations and identify any delays that occur during an operation.

Note: When you are reviewing a stack report, use an XML editor so that you can collapse and expand XML elements to make analyzing the report easier.
Each stack node within a stack report contains the following information:
<stack
  duration="4"
  name="MyOperationName"
  identifier="2670927491505327545"
  parent-identifier="2670927491505327544"
  start-time-nano="476309169964766"
  end-time-nano="476309174656525"
  duration-nano="4691759"
  result-size="1577"
  cache-enabled="false"
  from-cache="false"
  unique-key="userId=123,objectId=456"
>
Where,
duration
Duration of the operation in milliseconds
name
Name of the operation.
identifier
Unique identifier for the operation execution. This value is used to correlate parent-child relationships.
parent-identifier
Unique identifier for the parent operation execution. This value is used to correlate parent-child relationships.
start-time-nano
Operation start time in nanoseconds. This nanosecond value is relative to the end-time-nano parameter value.
end-time-nano
Operation end time in nanoseconds. This nanosecond value is relative to the start-time-nano parameter value.
duration-nano
Operation duration in nanoseconds.
result-size
Size of the result in bytes.
cache-enabled
Indicates whether the cache was enabled while the operation ran.
from-cache
Indicates whether the operation fetched the result from the cache while the operation ran. The values can be true or false.
unique-key
Unique key that was used while the operation ran. This key is formed by concatenating the parameter names and values within a single string.

Sample

The following code is a sample stack report. Each stack execution in the report includes a duration in milliseconds. If the execution results in child operations, the duration is broken down between these other stack child operations. If there is a delay greater than 1 millisecond between the stack operations, a delta operation displays. For example:
<stack duration="36" name="parent">
  <delta duration="11"/>
  <stack duration="5" name="child1"/>
  <stack duration="16" name="child2"/>
  <delta duration="4"/>
</stack>
This stack report records the duration of the operation "parent" and its child operations "child1", and "child2". The "parent" operation took 36 milliseconds overall to complete, which included the following stack and delta durations:
  • delta: A delay of 11 milliseconds was encountered in the "parent" operation.
  • stack: The "child1" operation ran and took 5 milliseconds to complete.
  • stack: The "child2" operation ran and took 16 milliseconds to complete.
  • delta: A delay of 4 milliseconds was encountered in the "parent" operation.