본문 바로가기

프로그래밍/C

[C언어] C, C++ 코드실행시간 측정하기

반응형

코드에서 함수나 특정 부분의 실행시간이 궁금한경우!

어떻게 실행시간을 측정하실건가요?

혹시 초시계같은걸로 측정하시려는건 아니겠죠?

 

코드 시간이 몇십초단위로 길다면 그렇게 측정해도 되겠지만,

0.01초가 중요한 시스템이나 코드시간이 1초도 안되는 경우는

초시계로 측정하기는 힘들겠죠?

 

저는 그런 상황이 발생한다면!

코드에서 실행시간을 측정하는 코드를 추가해서 로그하는 방식으로

실행시간을 측정할겁니다!

그 방법은 바로

'QueryPerformanceFrequency'과 'QueryPerformanceCounter'함수를 이용하는건데요!

백문이 불여일견! 바로 코드로 확인해보시죠

~~~

 

 

~

코드

 

#include <stdio.h>

#include <windows.h>

int main(void) {

LARGE_INTEGER PreFreq;

LARGE_INTEGER ms1, ms2;

int forTime;

 

QueryPerformanceFrequency(&PreFreq);

QueryPerformanceCounter(&ms1);

 

//ms1과 ms2사이의 시간을 측정합니다!

Sleep(1000);

 

QueryPerformanceCounter(&ms2);      

forTime = (int)((ms2.QuadPart - ms1.QuadPart) * 1000.0 / PreFreq.QuadPart);

printf("forTime:%dms", forTime);

}

~

 

 

~

실행결과

 

1초 대기 후 위와 같은 메시지가 출력됩니다!

측정한 시간은 ms단위로 표시되고요!

~

 

 

 

~

이를 이용하여!

코드에서 어느부분이 많은 시간을 잡아먹는지 찾고

그 부분만 수정해서

코드의 실행시간을 고칠 수 있겠죠?

 

저는 그럼 이만 이쯤에서 가볼게요!

궁금한점은 댓글로 질문달아주세요

반응형