#ifndef TOOL_TIMER_H
#define TOOL_TIMER_H
#include<chrono>
class tool_timer
{
private:
std::chrono::steady_clock::time_point _start;
public:
tool_timer():_start(std::chrono::steady_clock::now())
{
}
void reset()
{
_start = std::chrono::steady_clock::now();
}
/**
* @brief 毫秒
* @return
*/
uint64_t elapsed_ms()
{
return std::chrono::duration_cast<std::chrono::milliseconds>
(std::chrono::steady_clock::now()-_start).count();
}
/**
* @brief 微秒
* @return
*/
uint64_t elapsed_us()
{
return std::chrono::duration_cast<std::chrono::microseconds>
(std::chrono::steady_clock::now()-_start).count();
}
/**
* @brief 纳秒
* @return
*/
uint64_t elapsed_ns()
{
return std::chrono::duration_cast<std::chrono::nanoseconds>
(std::chrono::steady_clock::now()-_start).count();
}
};
#endif // TOOL_TIMER_H