#include <bsls_stopwatch.h>
List of all members.
Detailed Description
The class
provides an accumulator for the system, user, and wall times of the current process. A stopwatch can be in either the STOPPED (initial) state or the RUNNING state. It potentially tracks three values: the accumulated system time, the accumulated user time, and the accumulated wall time (all in seconds and all initially set to zero). Whether or not system and user times are accumulated is conditional on how the stopwatch is started (see the start
method). While in the RUNNING state, a stopwatch accumulates the above values and it retains the values if put into the STOPPED state (unless reset
is called). The accumulated times can be accessed at any time and in either state (RUNNING or STOPPED).
See Component bsls_stopwatch
Constructor & Destructor Documentation
bsls::Stopwatch::Stopwatch |
( |
|
) |
|
Create a stopwatch in the STOPPED state having total accumulated system, user, and wall times all equal to 0.0.
Member Function Documentation
void bsls::Stopwatch::reset |
( |
|
) |
|
Place this stopwatch in the STOPPED state, unconditionally stopping the accumulation of elapsed times, and set the quiescent elapsed times to 0.0.
void bsls::Stopwatch::start |
( |
bool |
collectCpuTimes = false |
) |
|
Place this stopwatch in the RUNNING state and begin accumulating elapsed times if this object was in the STOPPED state. Optionally specify a collectCpuTimes
flag indicating whether CPU times should be collected. If collectCpuTimes
is not specified, then CPU times are not collected. Note that the instantaneous total elapsed times are available from the RUNNING state. Also note that disabling collection of CPU times will result in fewer systems calls and therefore faster measurements. Also note that collectCpuTimes
may be expressed using the one of the class level constants k_COLLECT_WALL_TIME_ONLY
, and k_COLLECT_WALL_AND_CPU_TIMES
for easier immediate understanding of the meaning of the client code.
void bsls::Stopwatch::stop |
( |
|
) |
|
Place this stopwatch in the STOPPED state, unconditionally stopping the accumulation of elapsed times. Note that the quiescent accumulated elapsed times are available while in the STOPPED state.
double bsls::Stopwatch::accumulatedSystemTime |
( |
|
) |
const |
Return the total (instantaneous and quiescent) elapsed system time (in seconds) accumulated by this stopwatch, or 0 if the collection of CPU times is disabled.
void bsls::Stopwatch::accumulatedTimes |
( |
double * |
systemTime, |
|
|
double * |
userTime, |
|
|
double * |
wallTime | |
|
) |
| | const |
Load into the specified systemTime
, userTime
and wallTime
the total (instantaneous and quiescent) elapsed system, user, and wall times (all in seconds) accumulated by this stopwatch. Note that this method attempts to retrieve all of the values at the same time (atomically), if the underlying platform supports it.
double bsls::Stopwatch::accumulatedUserTime |
( |
|
) |
const |
Return the total (instantaneous and quiescent) elapsed user time (in seconds) accumulated by this stopwatch, or 0 if the collection of CPU times is disabled.
double bsls::Stopwatch::accumulatedWallTime |
( |
|
) |
const |
Return the total (instantaneous and quiescent) elapsed wall time (in seconds) accumulated by this stopwatch.
double bsls::Stopwatch::elapsedTime |
( |
|
) |
const |
Return the total (instantaneous and quiescent) elapsed wall time (in seconds) accumulated by this stopwatch. Note that this method is equivalent to accumulatedWallTime
.
bool bsls::Stopwatch::isRunning |
( |
|
) |
const |
Return true
if this stopwatch is in the RUNNING state, and false
otherwise.
Member Data Documentation
The documentation for this class was generated from the following file: