C++ 高精度计时器实现
不啰嗦直接上代码
头文件
#pragma once
#include <Windows.h>
class CPerformanceTime
{
public:
CPerformanceTime(void);
virtual ~CPerformanceTime(void);
void ResetTime();
int GetMilliSecond();
int GetMicroSecond();
long long GetStartTime();
long long GetEndTime();
private:
LARGE_INTEGER m_PerFreq;
LARGE_INTEGER m_StartTime;
LARGE_INTEGER m_EndTime;
};
cpp文件
#include "PerformanceTime.h"
CPerformanceTime::CPerformanceTime(void)
{
QueryPerformanceFrequency(&m_PerFreq);
QueryPerformanceCounter(&m_StartTime);
m_EndTime.QuadPart = 0;
}
CPerformanceTime::~CPerformanceTime(void)
{
}
int CPerformanceTime::GetMilliSecond()
{
QueryPerformanceCounter(&m_EndTime);
int dTime = (int)((m_EndTime.QuadPart - m_StartTime.QuadPart) * 1000 / (m_PerFreq.QuadPart));
return dTime;
}
int CPerformanceTime::GetMicroSecond()
{
QueryPerformanceCounter(&m_EndTime);
int dTime = (int)((m_EndTime.QuadPart - m_StartTime.QuadPart) * 1000000 / (m_PerFreq.QuadPart));
return dTime;
}
void CPerformanceTime::ResetTime()
{
QueryPerformanceCounter(&m_StartTime);
}
long long CPerformanceTime::GetStartTime()
{
long long dTime;
dTime = m_StartTime.QuadPart * 1000000 / (m_PerFreq.QuadPart);
return dTime;
}
long long CPerformanceTime::GetEndTime()
{
long long dTime;
dTime = m_EndTime.QuadPart * 1000000 / (m_PerFreq.QuadPart);
return dTime;
}