47 lines
814 B
C++
47 lines
814 B
C++
/*
|
||
* Timer.h
|
||
*
|
||
* Created on: 21 дек. 2021 г.
|
||
* Author: alexander
|
||
*/
|
||
|
||
#pragma once
|
||
|
||
#include <chrono>
|
||
|
||
class Timer
|
||
{
|
||
public:
|
||
static Timer& getInstance()
|
||
{
|
||
static Timer _instance;
|
||
return _instance;
|
||
}
|
||
|
||
void start()
|
||
{
|
||
m_beg = clock_t::now();
|
||
}
|
||
|
||
double end() const
|
||
{
|
||
return elapsed() * 1000;
|
||
}
|
||
|
||
private:
|
||
using clock_t = std::chrono::high_resolution_clock;
|
||
using second_t = std::chrono::duration<double, std::ratio<1> >;
|
||
|
||
std::chrono::time_point<clock_t> m_beg;
|
||
|
||
double elapsed() const
|
||
{
|
||
return std::chrono::duration_cast<second_t>(clock_t::now() - m_beg).count();
|
||
}
|
||
|
||
Timer() {}
|
||
Timer(const Timer&) = delete;
|
||
Timer& operator=(const Timer&) = delete;
|
||
Timer& operator=(Timer&&) = delete;
|
||
};
|