1 #pragma once 2 3 #define WIN32_LEAN_AND_MEAN 4 #include <windows.h> 5 6 7 namespace Time 8 { 9 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// GetTime()10 inline __int64 GetTime() 11 { 12 LARGE_INTEGER largeInteger; 13 QueryPerformanceCounter( &largeInteger ); 14 return largeInteger.QuadPart; 15 } 16 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// GetFrequency()17 inline __int64 GetFrequency() 18 { 19 LARGE_INTEGER frequency; 20 QueryPerformanceFrequency(&frequency); 21 return frequency.QuadPart; 22 } 23 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// GetTimeMilliSeconds()24 inline __int64 GetTimeMilliSeconds() 25 { 26 LARGE_INTEGER largeInteger; 27 QueryPerformanceCounter( &largeInteger ); 28 return ( largeInteger.QuadPart * __int64(1000) ) / GetFrequency(); 29 } 30 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// GetTimeMicroSeconds()31 inline __int64 GetTimeMicroSeconds() 32 { 33 LARGE_INTEGER largeInteger; 34 QueryPerformanceCounter( &largeInteger ); 35 return ( largeInteger.QuadPart * __int64(1000000) ) / GetFrequency(); 36 } 37 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SpinSleep(size_t microSeconds)38 inline void SpinSleep(size_t microSeconds) 39 { 40 __int64 time = GetTimeMicroSeconds() + microSeconds; 41 while(GetTimeMicroSeconds() < time) 42 { 43 Sleep(0); 44 } 45 } 46 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 47 } 48