c++中精確計時的類

爲了測試系統的效率,寫了兩個計時的類,備份下。

頭文件

#pragma once
#include <windows.h>

class CStaticTime
{
public:
	CStaticTime();
	~CStaticTime();

public:
	void   TimingStart();
	void   TimingEnd();
	double GetInterval();

	double GetTicksCount();
	double GetInterval(const double timeF,const double timeB);

private:
	LARGE_INTEGER m_lFrequency = {0};

	LARGE_INTEGER m_tStart = {0};
	LARGE_INTEGER m_tEnd = {0};

	double m_dTimeInterval = 0;
};

cpp文件

#include "stdafx.h"
#include "StaticTime.h"
#include "cmath"
CStaticTime::CStaticTime()
{
	QueryPerformanceFrequency(&m_lFrequency);
}

CStaticTime::~CStaticTime()
{
}

void CStaticTime::TimingStart()
{
	QueryPerformanceCounter(&m_tStart);
}

void CStaticTime::TimingEnd()
{
	QueryPerformanceCounter(&m_tEnd);

	m_dTimeInterval = ((double)m_tEnd.QuadPart - (double)m_tStart.QuadPart) * 1000 / (double)m_lFrequency.QuadPart;
}

double CStaticTime::GetInterval()
{
	return m_dTimeInterval;
}

double CStaticTime::GetTicksCount()
{
	LARGE_INTEGER currCounter;
	QueryPerformanceCounter(&currCounter);

	return (double)currCounter.QuadPart;
}

double CStaticTime::GetInterval(const double timeF, const double timeB)
{
	double absInteval = abs(timeB - timeF);
	return (absInteval * 1000) / (double)m_lFrequency.QuadPart;
}




 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章