casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Attributes
casa::Timer Class Reference

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

#include <Timer.h>

List of all members.

Public Member Functions

 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
 Show real, user, system time (in seconds) on cout or a user supplied stream.
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.
void show (ostream &os, const String &prefix) const
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()".

Private Attributes

rusage usage0
timeb real0

Detailed Description

measure the time it takes to execute parts of a program

Intended use:

Public interface

 <h3>Review Status</h3><dl><dt>Reviewed By:<dd>Paul Shannon<dt>Date Reviewed:<dd>1995/03/01/</dl> 

<h3>Synopsis</h3>
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.

<br><strong>Tip:</strong><em>  This Timer class is based on the TI COOL library 
       Timer class
</em><br>

<h3>Example</h3> @anchor Timer_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

casa::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 casa::Timer::all ( ) const

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

double casa::Timer::all_usec ( ) const

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

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

Referenced by casa::SolvableVisCal::markTimer(), and Timer().

double casa::Timer::real ( ) const

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

void casa::Timer::show ( ) const

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

void casa::Timer::show ( ostream &  os) const
void casa::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 casa::Timer::show ( ostream &  os,
const String prefix 
) const
double casa::Timer::system ( ) const

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

double casa::Timer::system_usec ( ) const

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

double casa::Timer::user ( ) const

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

double casa::Timer::user_usec ( ) const

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


Member Data Documentation

timeb casa::Timer::real0 [private]

Definition at line 203 of file Timer.h.

rusage casa::Timer::usage0 [private]

Definition at line 202 of file Timer.h.


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