MPQC  3.0.0-alpha
sc::RegionTimer Class Reference

The RegionTimer class is used to record the time spent in a section of code. More...

#include <util/misc/regtime.h>

Inheritance diagram for sc::RegionTimer:
sc::DescribedClass sc::RefCount sc::ParallelRegionTimer

Public Member Functions

 RegionTimer (const char *topname="total", int cpu_time=0, int wall_time=1)
 
 RegionTimer (const Ref< KeyVal > &)
 
void enter (const char *=0)
 
void change (const char *newname, const char *oldname=0)
 
void exit (const char *=0, bool do_not_throw=false)
 
double cpu_time (const char *name=0) const
 
double wall_time (const char *name=0) const
 
double flops (const char *name=0) const
 
void set_default (const char *)
 
void unset_default ()
 
void enter_default ()
 
void exit_default ()
 
virtual void print (std::ostream &=ExEnv::out0()) const
 Print the object.
 
void reset ()
 
void merge (const Ref< RegionTimer > &r)
 Include the regions in r in this object's regions.
 
void update_top () const
 
int nregion () const
 
void get_region_names (const char *names[]) const
 
void get_wall_times (double *) const
 
void get_cpu_times (double *) const
 
void get_flops (double *) const
 
void get_depth (int *) const
 
void add_wall_time (const char *, double)
 
void add_cpu_time (const char *, double)
 
void add_flops (const char *, double)
 
void acquire_timed_region (TimedRegion *r)
 Add r as a subregion of current_. After invocation, r is owned by this RegionTimer.
 
- Public Member Functions inherited from sc::DescribedClass
 DescribedClass (const DescribedClass &)
 
DescribedClassoperator= (const DescribedClass &)
 
ClassDescclass_desc () const MPQC__NOEXCEPT
 This returns the unique pointer to the ClassDesc corresponding to the given type_info object. More...
 
const char * class_name () const
 Return the name of the object's exact type.
 
int class_version () const
 Return the version of the class.
 
Ref< DescribedClassref ()
 Return this object wrapped up in a Ref smart pointer. More...
 
- Public Member Functions inherited from sc::RefCount
size_t identifier () const
 Return the unique identifier for this object that can be compared for different objects of different types. More...
 
int lock_ptr () const
 Lock this object.
 
int unlock_ptr () const
 Unlock this object.
 
void use_locks (bool inVal)
 start and stop using locks on this object
 
refcount_t nreference () const
 Return the reference count.
 
refcount_t reference ()
 Increment the reference count and return the new count.
 
refcount_t dereference ()
 Decrement the reference count and return the new count.
 
int managed () const
 
void unmanage ()
 Turn off the reference counting mechanism for this object. More...
 

Static Public Member Functions

static double get_wall_time ()
 
static double get_cpu_time ()
 
static double get_flops ()
 
static RegionTimerdefault_regiontimer ()
 
static void set_default_regiontimer (const Ref< RegionTimer > &)
 

Protected Attributes

int wall_time_
 
int cpu_time_
 
int flops_
 
TimedRegiontop_
 
TimedRegioncurrent_
 
TimedRegiondefault_
 
std::list< TimedRegion * > defaults_
 

Additional Inherited Members

- Protected Member Functions inherited from sc::RefCount
 RefCount (const RefCount &)
 
RefCountoperator= (const RefCount &)
 

Detailed Description

The RegionTimer class is used to record the time spent in a section of code.

Except for the creation of an initial RegionTimer, this class should usually not be used directly. Instead use the Timer class to control the RegionTimer in an exception safe manner.

Member Function Documentation

◆ get_cpu_time()

static double sc::RegionTimer::get_cpu_time ( )
static
Returns
the CPU time (in seconds) used by this process, as reported by getrusage

◆ get_wall_time()

static double sc::RegionTimer::get_wall_time ( )
static
Returns
the time reported by the system clock (the number of seconds since Epoch)
Note
precision is about a microsecond or less (see documentation for gettimeofday ).

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

Generated at Sun Jan 26 2020 23:24:11 for MPQC 3.0.0-alpha using the documentation package Doxygen 1.8.16.