프로그래밍을 하다보면 딜레이가 발생하거나해서 어느 부분이 느린지 알아내야 하는 경우가 생길 수 있습니다.
또는 알고리즘을 공부하다보면 내가 구현한 알고리즘의 속도를 알고싶을 때가 있습니다.
그럴때 특정 구간에 코드 실행시간을 알아야내야 하는 경우에 필요한 포스팅 입니다.
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를 누르면 아래와 같은 정의를 볼 수 있습니다.
'C, C++' 카테고리의 다른 글
C, C++ 에서 동적 메모리의 할당(malloc, new)과 해제(free,delete) 원리 (0) | 2018.04.30 |
---|---|
포인터 배열 VS 배열 포인터 차이 및 예제 (0) | 2018.04.30 |
[c/c++] memset()을 이용한 배열에 값을 모두 0또는 -1로 초기화 (0) | 2018.04.08 |
C++ STL 두 Vector 중복 인자 제거 함수 (0) | 2018.03.31 |
C++ STL Vector 기본 생성, 추가, 삭제 (0) | 2018.03.30 |