C & C++/C & C++
마이크로 세컨드 단위로 실행시간 측정하기
izen8
2014. 10. 29. 22:14
출처 - 여기여기
다음 예제는 윈도우 환경에서 마이크로 세컨드 단위로 실행시간을 측정하는 방법에 대해서 설명하고 있습니다.
본 예제를 수행하기 위해서는 하드웨어 수준에서 고성능 타이머를 지원해야 하며,
고성능 타이머에 대한 지원 유무는
QueryPerformanceFrequency() 의 리턴값으로 확인이 가능합니다.
=>
QueryPerformanceFrequency()
리턴값이
'TRUE'
일 경우 하드웨어 수준에서 고성능 타이머를 지원함.
#include <windows.h>
#include <stdio.h>
__int64 GetMicroSecond()
{
LARGE_INTEGER frequency;
LARGE_INTEGER now;
if ( !QueryPerformanceFrequency(&frequency) )
return (__int64)GetTickCount();
if ( !QueryPerformanceCounter(&now) )
return (__int64)GetTickCount();
return ((now.QuadPart) / (frequency.QuadPart/1000000));
}
int main(int argc, char* argv[])
{
__int64 tStart = 0;
tStart = GetMicroSecond();
Sleep(10);
printf("elapsed time : %I64d microsec\n", GetMicroSecond() - tStart);
return 0;
}