
FIRCTimer.h
#pragma once
#ifndef TIME_H
#define TIME_H
#include <iostream>
#include <chrono>
class FIRCTimer
{
public:
uint64_t ElapsedMilliseconds;
double ElapsedSeconds;
FIRCTimer(bool do_start = false)
{
if (do_start)
Start();
}
void Start()
{
m_start_point = std::chrono::high_resolution_clock::now();
}
void Stop()
{
m_end_point = std::chrono::high_resolution_clock::now();
ElapsedMilliseconds = std::chrono::duration_cast<std::chrono::milliseconds>(m_end_point - m_start_point).count();
ElapsedSeconds = ElapsedMilliseconds/1000;
}
private:
std::chrono::time_point<std::chrono::high_resolution_clock> m_start_point;
std::chrono::time_point<std::chrono::high_resolution_clock> m_end_point;
};
#endifwindows测试代码:
#include <iostream>
#include <windows.h>
#include "FIRCTimer.h"
int main()
{
FIRCTimer ft;
ft.Start();
Sleep(2000);
ft.Stop();
std::cout << ft.ElapsedSeconds<<"\n";
std::cout << ft.ElapsedMilliseconds << "\n";
}