HP PAK Performance Analysis Tools User's Guide
16 Chapter 2
Puma Concepts
How Puma Gathers Data
How Puma Gathers Data
To collect performance data, Puma performs the following steps at each
sampling interval:
1. Stop the program.
2. Take a sample from the program's image.
3. Store the sample in a memory buffer.
4. Release the program, allowing it to resume execution.
A sample is a unit of data gathered by Puma. A sample contains stack
trace information and statistical information about the current state of
the program.
Stack Traces
A stack trace is a snapshot of the program's call/return stack. It is an
ordered sequence of the procedures that are active when the sample is
taken.
Puma considers a procedure to be active (on the stack) if control is within
the procedure itself or in any of its descendants. When a procedure is
active, Puma's later analysis will show that time is being spent
in-or-under that procedure. When the program counter is in a procedure,
Puma's analysis will show that time is being spent in-only that
procedure.
Figure 2-2 highlights the procedures that are active when contractor
is executing, and garage has called contractor.
If Puma takes a sample when contractor is executing, the stack trace
returned looks this way:
\main\garage\contractor
The last procedure in a stack trace is the currently executing procedure.
The other procedures in the list are the executing procedure's ancestors.