spot  2.16
Public Member Functions | Protected Attributes | List of all members
spot::timer Class Reference

#include <spot/misc/timer.hh>

Collaboration diagram for spot::timer:

Public Member Functions

void start ()
 Start a time interval. More...
 
void stop ()
 Stop a time interval and update the sum of all intervals. More...
 
clock_t utime () const
 Return the user time of the current process (without children) of all accumulated interval. More...
 
clock_t cutime () const
 Return the user time of children of all accumulated interval. More...
 
clock_t stime () const
 Return the system time of the current process (without children) of all accumulated interval. More...
 
clock_t cstime () const
 Return the system time of children of all accumulated interval. More...
 
clock_t get_uscp (bool user, bool system, bool children, bool parent) const
 
bool is_running () const
 Whether the timer is running. More...
 
std::chrono::milliseconds::rep walltime () const
 Return cumulative wall time. More...
 

Protected Attributes

time_info start_
 Start time of the current interval. More...
 
time_info total_
 Accumulated time across all intervals. More...
 
bool running
 
std::chrono::steady_clock::time_point wall_start_
 Wall-clock start time of the current interval. More...
 
std::chrono::milliseconds::rep wall_cumul_ = 0
 Wall time sum. More...
 

Detailed Description

A timekeeper that accumulates intervals of time in a more detailed way. For instance, you can get the time spent with or without children processes.

Member Function Documentation

◆ cstime()

clock_t spot::timer::cstime ( ) const
inline

Return the system time of children of all accumulated interval.

Any time interval that has been start()ed but not stop()ed will not be accounted for.

References spot::time_info::cstime, and total_.

Referenced by get_uscp().

◆ cutime()

clock_t spot::timer::cutime ( ) const
inline

Return the user time of children of all accumulated interval.

Any time interval that has been start()ed but not stop()ed will not be accounted for.

References spot::time_info::cutime, and total_.

Referenced by get_uscp().

◆ get_uscp()

clock_t spot::timer::get_uscp ( bool  user,
bool  system,
bool  children,
bool  parent 
) const
inline

Return accumulated CPU ticks for selected time components.

Each boolean flag selects a component: user/system time of the current process (parent) or its children.

References cstime(), cutime(), stime(), and utime().

Referenced by spot::process_timer::cputime().

◆ is_running()

bool spot::timer::is_running ( ) const
inline

Whether the timer is running.

References running.

◆ start()

void spot::timer::start ( )
inline

◆ stime()

clock_t spot::timer::stime ( ) const
inline

Return the system time of the current process (without children) of all accumulated interval.

Any time interval that has been start()ed but not stop()ed will not be accounted for.

References spot::time_info::stime, and total_.

Referenced by get_uscp().

◆ stop()

void spot::timer::stop ( )
inline

Stop a time interval and update the sum of all intervals.

References spot::time_info::cstime, spot::time_info::cutime, running, start_, spot::time_info::stime, total_, spot::time_info::utime, wall_cumul_, and wall_start_.

Referenced by spot::process_timer::stop().

◆ utime()

clock_t spot::timer::utime ( ) const
inline

Return the user time of the current process (without children) of all accumulated interval.

Any time interval that has been start()ed but not stop()ed will not be accounted for.

References total_, and spot::time_info::utime.

Referenced by get_uscp().

◆ walltime()

std::chrono::milliseconds::rep spot::timer::walltime ( ) const
inline

Return cumulative wall time.

When using multithreading the cpu time is not relevant and we have to deal with wall time to have an effective timer

References wall_cumul_.

Referenced by spot::swarmed_bloemen< State, SuccIterator, StateHash, StateEqual >::walltime(), and spot::swarmed_bloemen_ec< State, SuccIterator, StateHash, StateEqual >::walltime().

Member Data Documentation

◆ running

bool spot::timer::running
protected

Whether the timer is currently running.

Referenced by is_running(), start(), and stop().

◆ start_

time_info spot::timer::start_
protected

Start time of the current interval.

Referenced by start(), and stop().

◆ total_

time_info spot::timer::total_
protected

Accumulated time across all intervals.

Referenced by cstime(), cutime(), stime(), stop(), and utime().

◆ wall_cumul_

std::chrono::milliseconds::rep spot::timer::wall_cumul_ = 0
protected

Wall time sum.

Referenced by stop(), and walltime().

◆ wall_start_

std::chrono::steady_clock::time_point spot::timer::wall_start_
protected

Wall-clock start time of the current interval.

Referenced by start(), and stop().


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

Please direct any question, comment, or bug report to the Spot mailing list at spot@lrde.epita.fr.
Generated on Fri Feb 27 2015 10:00:07 for spot by doxygen 1.9.1