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

measure the time it takes to execute parts of a program More...

#include <Timer.h>

Public Member Functions

 Timer ()
 Construct a timer and set the mark ("mark()"). More...
 
void mark ()
 Set the timer mark – i.e., start the clock ticking. More...
 
double user () const
 Get the user time (in seconds) since last "mark()". More...
 
double system () const
 Get the system time (in seconds) since last "mark()". More...
 
double all () const
 Get the user+system time (in seconds) since last "mark()". More...
 
double real () const
 Get the real time (in seconds) since last "mark()". More...
 
void show () const
 Show real, user, system time (in seconds) on cout or a user supplied stream. More...
 
void show (ostream &os) const
 
void show (const String &) const
 Show real, user, system time (in seconds) on cout or a user supplied stream preceeded by the string parameter. More...
 
void show (ostream &os, const String &prefix) const
 
double user_usec () const
 Get the user time (in microseconds) since last "mark()". More...
 
double system_usec () const
 Get the system time (in microseconds) since last "mark()". More...
 
double all_usec () const
 Get the user+system time (in microseconds) since last "mark()". More...
 

Private Attributes

rusage usage0
 
timeb real0
 

Detailed Description

measure the time it takes to execute parts of a program

Intended use:

Public interface

Review Status

Reviewed By:
Paul Shannon
Date Reviewed:
1995/03/01/

Synopsis

The Timer class provides an interface to system timing. It allows a C++ program to record the time between a reference point (mark) and now. This class uses the system time(2) interface to provide time resolution at either millisecond or microsecond granularity, depending upon operating system support and features. Since the time duration is stored in a 32-bit word, the maximum time period before rollover occurs is about 71 minutes.

Due to operating system dependencies, the accuracy of all member function results may not be as documented. For example some operating systems do not support timers with microsecond resolution. In those cases, the values returned are provided to the nearest millisecond or other unit of time as appropriate. See the Timer header file for system- specific notes.


Tip: This Timer class is based on the TI COOL library Timer class

Example

Here's how to create a timer, start it (the 'mark' member function) and display a breakdown. Recall that

realtime = user time + system time
Timer timer; // the mark is set at construction time
timer.mark(); // if you want to restart the clock
...do some calculation..\.
cout << "user: " << timer.user () << endl;
cout << "system: " << timer.system () << endl;
cout << "real: " << timer.real () << endl;

To Do

Definition at line 127 of file Timer.h.

Constructor & Destructor Documentation

casacore::Timer::Timer ( )
inline

Construct a timer and set the mark ("mark()").

Definition at line 132 of file Timer.h.

References mark().

Member Function Documentation

double casacore::Timer::all ( ) const

Get the user+system time (in seconds) since last "mark()".

double casacore::Timer::all_usec ( ) const

Get the user+system time (in microseconds) since last "mark()".

void casacore::Timer::mark ( )

Set the timer mark – i.e., start the clock ticking.

Referenced by Timer().

double casacore::Timer::real ( ) const

Get the real time (in seconds) since last "mark()".

void casacore::Timer::show ( ) const

Show real, user, system time (in seconds) on cout or a user supplied stream.

void casacore::Timer::show ( ostream &  os) const
void casacore::Timer::show ( const String ) const

Show real, user, system time (in seconds) on cout or a user supplied stream preceeded by the string parameter.

void casacore::Timer::show ( ostream &  os,
const String prefix 
) const
double casacore::Timer::system ( ) const

Get the system time (in seconds) since last "mark()".

double casacore::Timer::system_usec ( ) const

Get the system time (in microseconds) since last "mark()".

double casacore::Timer::user ( ) const

Get the user time (in seconds) since last "mark()".

double casacore::Timer::user_usec ( ) const

Get the user time (in microseconds) since last "mark()".

Member Data Documentation

timeb casacore::Timer::real0
private

Definition at line 203 of file Timer.h.

rusage casacore::Timer::usage0
private

Definition at line 202 of file Timer.h.


The documentation for this class was generated from the following file: