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<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:

List of all members.

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.

         Timer t;
         doSomething();
         std::cout << t << '\n';
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines