23 #include <type_traits> 42 QueryPerformanceFrequency(&
m_freq);
43 assert(
m_freq.QuadPart != 0);
54 #define LARGE_INTEGER_NUMS reinterpret_cast<LARGE_INTEGER*>(largeInts) 56 #define TIMEVAL_NUMS reinterpret_cast<struct timeval*>(largeInts) 65 sizeof(
largeInts) >= 2 *
sizeof(LARGE_INTEGER),
66 "sizeof(LARGE_INTEGER) failed!");
69 sizeof(
largeInts) >= 2 *
sizeof(
struct timeval),
70 "sizeof(struct timeval) failed!");
79 QueryPerformanceCounter(&l[0]);
81 auto* ts = TIMEVAL_NUMS;
82 gettimeofday(&ts[0],
nullptr);
90 QueryPerformanceCounter(&l[1]);
91 return (l[1].QuadPart - l[0].QuadPart) *
94 auto* ts = TIMEVAL_NUMS;
95 gettimeofday(&ts[1],
nullptr);
96 return static_cast<double>(ts[1].tv_sec - ts[0].tv_sec) +
97 1e-6 * static_cast<double>(ts[1].tv_usec - ts[0].tv_usec);
double Tac() noexcept
Stops the stopwatch.
CTicTac() noexcept
Default constructor.
AuxWindowsTicTac() noexcept
static AuxWindowsTicTac & GetInstance() noexcept
void Tic() noexcept
Starts the stopwatch.
#define LARGE_INTEGER_NUMS
unsigned long largeInts[4]