주의 사항
실행 쓰래드는 비선점이라고 가정함. (허나..대부분의 고 정밀도의 실행 시간을 원하는 코드는 수명이 짧도록 작성된다.)
class CStopwatch {
private:
LARGE_INTEGER m_liPerfFreq;
LARGE_INTEGER m_liPerfStart;
public:
CStopwatch() {
QueryPerformanceFrequency(&m_liPerfFreq);
Start();
}
void Start() {
QueryPerformanceCounter(&m_liPerfStart);
}
__int64 Now() const {
LARGE_INTEGER liPerfNow;
QueryPerformanceCounter(&liPerfNow);
return (
((liPerfNow.QuadPart - m_liPerfStart.QuadPart)
* 1000) / m_liPerfFreq.QuadPart);
}
};
// 사용법
//스탑워치 타이머를 생성한다.(기본값으로 현재 시간이 맞추어짐)
CStopwatch stopwatch;
/////////////////////////
//시간 잴 코드는 이곳에
/////////////////////////
//현재까지 얼마만큼의 시간이 흘렀는지를 얻는다.
//qwElapsedTime은 코드가 실행에 소비한 시간. 단위는 milliseconds.
__int64 qwElapsedTime = stopwatch.Now();
C++
복사