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
orfalse
. 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.