- Main Page
- Modules
- Classes
- Namespaces
- Files
- Related Pages

- Class List
- Class Index
- Class Hierarchy
- Class Members

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

## 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<lemon/time_measure.h>
* #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:
[legend]

## Public Member Functions
| Timer (bool run=true)
| Constructor. More...
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. More...
void | start ()
| Start the time counters. More...
void | stop ()
| Stop the time counters. More...
void | halt ()
| Halt (i.e stop immediately) the time counters. More...
int | running ()
| Returns the running state of the timer. More...
void | restart ()
| Restart the time counters. More...
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. More...
double | cSystemTime () const
| Gives back the ellapsed user time of the process' children. More...
double | realTime () const
| Gives back the ellapsed real time.
| operator TimeStamp () const
| Computes the ellapsed time. More...

## Constructor & Destructor Documentation

Timer | ( | bool | run = `true` | ) |
| inline

Parameters

  run | indicates 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.

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