Timer.h

Classes

Timer -- measure the time it takes to execute parts of a program (full description)

class Timer

Interface

Public Members
Timer()
void mark()
double user() const
double system() const
double all() const
double real() const
void show() const
void show(ostream &os) const
void show(const String&) const
void show(ostream &os, const String&prefix) const
double user_usec() const
double system_usec() const
double all_usec() const
Private Members
#elif defined(AIPS_SOLARIS) || defined(AIPS_IRIX) || defined(AIPS_OSF) || defined(__hpux__) || defined(AIPS_LINUX) || defined(AIPS_DARWIN) tms usage0

Description

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

Member Description

Timer()

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

void mark()

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

double user() const

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

double system() const

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

double all() const

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

double real() const

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

void show() const
void show(ostream &os) const

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

void show(const String&) const
void show(ostream &os, const String&prefix) const

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

double user_usec() const

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

double system_usec() const

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

double all_usec() const

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

#elif defined(AIPS_SOLARIS) || defined(AIPS_IRIX) || defined(AIPS_OSF) || defined(__hpux__) || defined(AIPS_LINUX) || defined(AIPS_DARWIN) tms usage0