1 #ifndef _MADARA_UTILITY_TIMER_H_ 2 #define _MADARA_UTILITY_TIMER_H_ 15 template <
typename CLOCK=std::chrono::steady_clock>
41 auto dur = std::chrono::duration_cast<std::chrono::nanoseconds> (
44 return (uint64_t) dur.count ();
53 auto dur = std::chrono::duration_cast<std::chrono::seconds> (
56 return (uint64_t) dur.count ();
65 auto dur = std::chrono::duration_cast<std::chrono::duration <double>> (
68 return (
double) dur.count ();
75 template <
typename PERIOD=std::chrono::nanoseconds>
78 auto dur = std::chrono::duration_cast<PERIOD> (
81 return (uint64_t) dur.count ();
87 std::chrono::time_point<CLOCK>
start_;
90 std::chrono::time_point<CLOCK>
end_;
95 #endif // _MADARA_UTILITY_TIMER_H_ void stop(void)
Stops the timer.
uint64_t duration_ns(void) const
Returns a duration in nanoseconds.
uint64_t duration(void) const
Returns a duration in user-specified period.
std::chrono::time_point< CLOCK > start_
the start of the timer duration
uint64_t duration_s(void) const
Returns a duration in seconds.
void start(void)
Starts the timer.
Provides utility functions and classes for common tasks and needs.
Manages a timer for duration testing.
Copyright (c) 2015 Carnegie Mellon University.
std::chrono::time_point< CLOCK > end_
the end of the timer duration
double duration_ds(void) const
Returns a duration in seconds (double format)