본문 바로가기
C & C++/C & C++

마이크로 세컨드 단위로 실행시간 측정하기

by izen8 2014. 10. 29.
반응형

출처 - 여기여기

다음 예제는 윈도우 환경에서 마이크로 세컨드 단위로 실행시간을 측정하는 방법에 대해서 설명하고 있습니다.

 

본 예제를 수행하기 위해서는 하드웨어 수준에서 고성능 타이머를 지원해야 하며,

고성능 타이머에 대한 지원 유무는 

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;
}

 

반응형

댓글