diff --git a/HugeCTR/include/utils.hpp b/HugeCTR/include/utils.hpp index c1314f8a53..0f9ee3426d 100644 --- a/HugeCTR/include/utils.hpp +++ b/HugeCTR/include/utils.hpp @@ -37,36 +37,36 @@ namespace HugeCTR { class Timer { public: void start() { - m_StartTime_ = std::chrono::system_clock::now(); + m_StartTime_ = std::chrono::steady_clock::now(); m_bRunning_ = true; } void stop() { - m_EndTime_ = std::chrono::system_clock::now(); + m_EndTime_ = std::chrono::steady_clock::now(); m_bRunning_ = false; } double elapsedMilliseconds() { - std::chrono::time_point endTime; - if (m_bRunning_) { - endTime = std::chrono::system_clock::now(); - } else { - endTime = m_EndTime_; - } - return std::chrono::duration_cast(endTime - m_StartTime_).count(); + return std::chrono::duration_cast(elapsed()).count(); } double elapsedMicroseconds() { - std::chrono::time_point endTime; + return elapsed().count(); + } + double elapsedSeconds() { + return std::chrono::duration_cast(elapsed()).count(); + } + + private: + std::chrono::microseconds elapsed() { + std::chrono::time_point endTime; if (m_bRunning_) { - endTime = std::chrono::system_clock::now(); + endTime = std::chrono::steady_clock::now(); } else { endTime = m_EndTime_; } - return std::chrono::duration_cast(endTime - m_StartTime_).count(); + return std::chrono::duration_cast(endTime - m_StartTime_); } - double elapsedSeconds() { return elapsedMilliseconds() / 1000.0; } - private: - std::chrono::time_point m_StartTime_; - std::chrono::time_point m_EndTime_; + std::chrono::time_point m_StartTime_{}; + std::chrono::time_point m_EndTime_{}; bool m_bRunning_ = false; };