Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class HRTimer {
- public:
- HRTimer(void) {
- frequency = this->GetFrequency();
- }
- LARGE_INTEGER getFrequency() {
- LARGE_INTEGER proc_freq;
- QueryPerformanceFrequency(&proc_freq);
- return proc_freq.QuadPart;
- }
- void startTimer() {
- DWORD_PTR oldmask = ::SetThreadAffinityMask(::GetCurrentThread(), 0);
- ::QueryPerformanceCounter(&start);
- ::SetThreadAffinityMask(::GetCurrentThread(), oldmask);
- }
- double stopTimer() {
- 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;
- LARGE_INTEGER frequency;
- }
Add Comment
Please, Sign In to add comment