Files
core/ASCImageStudio3/AVSImageView5/Tracking/TimeMeasurer.h

48 lines
884 B
C++

#pragma once
class CTimeMeasurer
{
public:
CTimeMeasurer()
{
QueryPerformanceFrequency(&m_liFreq);
QueryPerformanceCounter(&m_liStart);
}
void Reset()
{
QueryPerformanceCounter(&m_liStart);
}
//èíòåðâàë â ñåêóíäàõ
double GetTimeInterval()
{
LARGE_INTEGER liFinish;
QueryPerformanceCounter(&liFinish);
return (double)((liFinish.QuadPart-m_liStart.QuadPart)/(double)m_liFreq.LowPart);
}
protected:
LARGE_INTEGER m_liStart;
LARGE_INTEGER m_liFreq;
};
class CTraceTimer
{
public:
CTraceTimer(const CString &sTitle)
: m_sTitle(sTitle)
{
}
~CTraceTimer()
{
ATLTRACE("%s : %f\n",m_sTitle,m_oTimer.GetTimeInterval());
}
void Trace(const CString &sSubTitle)
{
ATLTRACE("%s::%s %f\n",m_sTitle,sSubTitle,m_oTimer.GetTimeInterval() * 1000.0 );
}
protected:
CTimeMeasurer m_oTimer;
CString m_sTitle;
};