1 #ifndef _MADARA_UTILITY_TIMER_H_
2 #define _MADARA_UTILITY_TIMER_H_
15 template<
typename CLOCK = std::chrono::steady_clock>
42 std::chrono::duration_cast<std::chrono::nanoseconds>(
end_ -
start_);
44 return (uint64_t)dur.count();
53 auto dur = std::chrono::duration_cast<std::chrono::seconds>(
end_ -
start_);
55 return (uint64_t)dur.count();
64 auto dur = std::chrono::duration_cast<std::chrono::duration<double>>(
67 return (
double)dur.count();
74 template<
typename PERIOD = std::chrono::nanoseconds>
77 auto dur = std::chrono::duration_cast<PERIOD>(
end_ -
start_);
79 return (uint64_t)dur.count();
84 std::chrono::time_point<CLOCK>
start_;
87 std::chrono::time_point<CLOCK>
end_;
Manages a timer for duration testing.
uint64_t duration_ns(void) const
Returns a duration in nanoseconds.
void stop(void)
Stops the timer.
uint64_t duration(void) const
Returns a duration in user-specified period.
std::chrono::time_point< CLOCK > end_
the end of the timer duration
uint64_t duration_s(void) const
Returns a duration in seconds.
double duration_ds(void) const
Returns a duration in seconds (double format)
void start(void)
Starts the timer.
std::chrono::time_point< CLOCK > start_
the start of the timer duration
Provides utility functions and classes for common tasks and needs.
Timer< std::chrono::steady_clock > TimerSteady
Copyright(c) 2020 Galois.