Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class HRTimer {
- public:
- HRTimer() : frequency(GetFrequency()) { }
- LONGLONG GetFrequency()
- {
- LARGE_INTEGER proc_freq;
- QueryPerformanceFrequency(&proc_freq);
- return proc_freq.QuadPart;
- }
- void Reset()
- {
- DWORD_PTR oldmask = SetThreadAffinityMask(GetCurrentThread(), 0);
- QueryPerformanceCounter(&start);
- SetThreadAffinityMask(GetCurrentThread(), oldmask);
- }
- double GetElapsed()
- {
- DWORD_PTR oldmask = SetThreadAffinityMask(GetCurrentThread(), 0);
- QueryPerformanceCounter(&stop);
- SetThreadAffinityMask(GetCurrentThread(), oldmask);
- return ((stop.QuadPart - start.QuadPart) / (double)frequency);
- }
- private:
- LARGE_INTEGER start;
- LARGE_INTEGER stop;
- LONGLONG frequency;
- };
Advertisement
Add Comment
Please, Sign In to add comment