Stack reports
We can use the Performance Measurement tool to generate stack reports. Stack reports include the measurements for the stack of operations used when you run a sample operation.We can use this stack information to help troubleshoot potential performance problems by identifying the slowest or fastest operations in the stack. We can also use this information to determine the average execution time for operations and identify any delays that occur during an operation.
Note: When we are reviewing a stack report, use an XML editor so that we 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.
Related tasks
Use the Performance Measurement tool
Related reference
Performance reports
Execution reports
Caller reports