All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions
Timer Class Reference

Detailed Description

Class for measuring the cpu time and real time usage of the process. It is quite easy-to-use, here is a short example.

#include<iostream>
int main()
{
...
Timer t;
doSomething();
std::cout << t << '\n';
t.restart();
doSomethingElse();
std::cout << t << '\n';
...
}

The Timer can also be stopped and started again, so it is possible to compute collected running times.

Warning
Depending on the operation system and its actual configuration the time counters have a certain (10ms on a typical Linux system) granularity. Therefore this tool is not appropriate to measure very short times. Also, if you start and stop the timer very frequently, it could lead to distorted results.
Note
If you want to measure the running time of the execution of a certain function, consider the usage of TimeReport instead.
See Also
TimeReport

#include <lemon/time_measure.h>

+ Inheritance diagram for Timer:

Public Member Functions

 Timer (bool run=true)
 Constructor.
 
Control the State of the Timer

Basically a Timer can be either running or stopped, but it provides a bit finer control on the execution. The Timer also counts the number of start() executions, and it stops only after the same amount (or more) stop()s. This can be useful e.g. to compute the running time of recursive functions.

void reset ()
 Reset and stop the time counters.
 
void start ()
 Start the time counters.
 
void stop ()
 Stop the time counters.
 
void halt ()
 Halt (i.e stop immediately) the time counters.
 
int running ()
 Returns the running state of the timer.
 
void restart ()
 Restart the time counters.
 
Query Functions for the Ellapsed Time
double userTime () const
 Gives back the ellapsed user time of the process.
 
double systemTime () const
 Gives back the ellapsed system time of the process.
 
double cUserTime () const
 Gives back the ellapsed user time of the process' children.
 
double cSystemTime () const
 Gives back the ellapsed user time of the process' children.
 
double realTime () const
 Gives back the ellapsed real time.
 
 operator TimeStamp () const
 Computes the ellapsed time.
 

Constructor & Destructor Documentation

Timer ( bool  run = true)
inline
Parameters
runindicates whether or not the timer starts immediately.

Member Function Documentation

void reset ( )
inline

This function resets and stops the time counters

See Also
restart()
void start ( )
inline

This function starts the time counters.

If the timer is started more than ones, it will remain running until the same amount of stop() is called.

See Also
stop()
void stop ( )
inline

This function stops the time counters. If start() was executed more than once, then the same number of stop() execution is necessary the really stop the timer.

See Also
halt()
start()
restart()
reset()
void halt ( )
inline

This function stops immediately the time counters, i.e. t.halt() is a faster equivalent of the following.

while(t.running()) t.stop()
See Also
stop()
restart()
reset()
int running ( )
inline

This function returns the number of stop() exections that is necessary to really stop the timer. For example, the timer is running if and only if the return value is true (i.e. greater than zero).

void restart ( )
inline

This function is a shorthand for a reset() and a start() calls.

double cUserTime ( ) const
inline
Note
On WIN32 platform this value is not calculated.
double cSystemTime ( ) const
inline
Note
On WIN32 platform this value is not calculated.
operator TimeStamp ( ) const
inline

This conversion computes the ellapsed time, therefore you can print the ellapsed time like this.

doSomething();
std::cout << t << '\n';