Search
Duplicate
🏆

고 정밀도로 코드 실행 시간 재기

Category
S/W 엔지니어
Tags
Programming Applications for Microsoft Windows
C++
Created time
2004/10/21
제프리 릭터의 Programming Applications for Microsoft Windows. (4th Editon)에 담긴 내용입니다.

주의 사항

실행 쓰래드는 비선점이라고 가정함. (허나..대부분의 고 정밀도의 실행 시간을 원하는 코드는 수명이 짧도록 작성된다.)
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++
복사