
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.