카테고리 없음

Windows 프로그램 실행시간 측정하기

ch4rli3kop 2021. 9. 28. 21:42
반응형

Windows 프로그램 실행시간 측정하기

윈도우에서 보다 정교하게 시간을 측정하는 방법으로 고성능 타이버를 이용하는 방법이 있다.

다음과 같이 간단히 구현할 수 있는데, 먼저 Frequency 즉 1초당 CPU가 실행하는 틱 수를 측정한다. MSDOCS에 따르면 이 값은 시스템이 부팅될 때 고정되기 때문에 한 번만 호출해도 된다.

이 후에 프로그램을 실행하기 전의 실행된 틱 값과 실행한 후의 틱 값의 차이를 구하여 Frequency 값으로 나누면 몇 초가 지났는지 구할 수 있다.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <Windows.h>

int main(int argc, char* argv[]){
    LARGE_INTEGER Frequency;
	LARGE_INTEGER BeginTime;
	LARGE_INTEGER EndTime;
	SINT64 elapsed;
	double duringtime;
    
    QueryPerformanceFrequency(&Frequency);
    
	QueryPerformanceCounter(&BeginTime);
    
    // do something
    
    QueryPerformanceCounter(&EndTime);

	elapsed = EndTime.QuadPart - BeginTime.QuadPart;
	duringtime = (double)elapsed / (double)Frequency.QuadPart;

	printf("elapsed time: %lf\n", duringtime);

    return 0;
}

 

반응형