C, C++
C, C++ 프로그램 실행 시간 측정
꿈만은공돌
2018. 3. 29. 23:56
프로그래밍을 하다보면 딜레이가 발생하거나해서 어느 부분이 느린지 알아내야 하는 경우가 생길 수 있습니다.
또는 알고리즘을 공부하다보면 내가 구현한 알고리즘의 속도를 알고싶을 때가 있습니다.
그럴때 특정 구간에 코드 실행시간을 알아야내야 하는 경우에 필요한 포스팅 입니다.
C언어, C++에서 프로그램 실행시간을 측정하는 방법은 두 가지가 있습니다.
1. time 함수를 이용한 방법
우선 time 함수를 이용한 방법 입니다.
time(NULL) 함수를 이용하여 받아옵니다.
단점은 ms단위가 아닌 초(s) 단위로 측정이 됩니다.
#include <time.h> 헤더파일을 포함시키고 아래와 같이 사용하시면 됩니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> #include <time.h> int main() { time_t start, end; double result; int i, j; int sum = 0; start = time(NULL); // 시간 측정 시작 for (i = 0; i < 100000; i++) { for (j = 0; j < 10000; j++) { sum += i * j; } } end = time(NULL); // 시간 측정 끝 result = (double)(end - start); printf("%f", result); //결과 출력 return 0; } |
2. clock 함수를 이용한 방법
clock 함수를 이용하여 앞에 방법의 단점을 해결하여 ms 단위로 시간을 측정 할 수 있습니다.
time 함수와 마찬가지로 include<time.h> 헤더 파일을 포함 시켜야 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include <stdio.h> #include <time.h> int main() { clock_t start, end; double result; int i,j; int sum = 0; start = clock(); //시간 측정 시작 for (i = 0; i < 100000; i++) { for (j = 0; j < 10000; j++) { sum += i * j; } } end = clock(); //시간 측정 끝 result = (double)(end - start); printf("%f", result); return 0; } |
clock 함수는 아래와 같이 1초 1000 clock으로 정의되어 있습니다.
따라서 1clock은 1ms 입니다.
Visual studio 에서 clock 함수에서 F12를 누르면 아래와 같은 정의를 볼 수 있습니다.