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

Synopsis

Declared in <bsls_stopwatch.h>

class Stopwatch;

Member Functions

Name

Description

Stopwatch [constructor]

Constructors

~Stopwatch [destructor]

Destroy this stopwatch. Note that this method's definition is compiler generated.

accumulatedSystemTime

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.

accumulatedTimes

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.

accumulatedUserTime

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.

accumulatedWallTime

Return the total (instantaneous and quiescent) elapsed wall time (in seconds) accumulated by this stopwatch.

elapsedTime

Return the total (instantaneous and quiescent) elapsed wall time (in seconds) accumulated by this stopwatch. Note that this method is equivalent to accumulatedWallTime.

isRunning

Return true if this stopwatch is in the RUNNING state, and false otherwise.

reset

Place this stopwatch in the STOPPED state, unconditionally stopping the accumulation of elapsed times, and set the quiescent elapsed times to 0.0.

start

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.

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.

Static Data Members

Name

Description

k_COLLECT_WALL_AND_CPU_TIMES

For readability/ease of understanding of code that calls the start(bool) method use these constants as arguments.

k_COLLECT_WALL_TIME_ONLY

Collect wall time only (not CPU time).

Created with MrDocs