]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/blob - cddl/contrib/dtracetoolkit/Notes/ALLelapsed_notes.txt
Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.
[FreeBSD/stable/10.git] / cddl / contrib / dtracetoolkit / Notes / ALLelapsed_notes.txt
1 **************************************************************************
2 * The following are notes for all scripts that measure elapsed time.
3 *
4 * $Id: ALLelapsed_notes.txt 44 2007-09-17 07:47:20Z brendan $
5 *
6 * COPYRIGHT: Copyright (c) 2007 Brendan Gregg.
7 **************************************************************************
8
9
10 * What is "elapsed" time?
11
12 Elapsed time is the absolute time from one point to another. This time
13 includes everything that happened between these points, including 
14 off-CPU time due to other system events such as I/O, scheduling,
15 interrupts, etc. It also includes the small overheads of DTrace itself.
16
17 Elapsed times are useful for identifying where latencies are, since
18 regardless of their nature (CPU, I/O, ...), they will be visible in
19 elapsed time.
20
21 Since elapsed times don't filter out anything, they are suseptible to
22 "noise" - random system events that are unrelated to the analysis target.
23 For that reason, it may be best to take several measurements of elapsed
24 time and take the average (or run your workload several times and let
25 DTrace take the average).
26
27 See Notes/ALLoncpu_notes.txt for a description of a different time
28 measurement, "on-CPU" time.
29
30
31 * How is "elapsed" time measured?
32
33 In DTrace, the following template provides elapsed time as "this->elapsed",
34
35    <start-probe>
36    {
37            self->start = timestamp;
38    }
39    
40    <end-probe>
41    {
42            this->elapsed = timestamp - self->start;
43            self->start = 0;
44            ...
45    }
46