반응형
※ time(), clock() 함수를 사용하기 위해서는 <time.h> 파일을 include 한다.
time() 함수
#include <stdio.h>
#include <time.h>
int main() {
int sum = 0;
time_t start = time(NULL);
for (int i = 0; i < 10000; i++)
for (int j = 0; j < 10000; j++)
sum += i * j;
time_t end = time(NULL);
printf("소요시간: %lf\n", (double)(end - start));
}
- time(NULL) 함수를 이용한 방법으로 ms가 아닌 초(second) 단위로 측정.
* 소요시간은 실행할 때마다 다르게 측정될 수 있지만 PS에서 1억 Size (108)를 탐색할 때 1초 정도 소요.
clock() 함수
time() 함수와는 달리 ms 단위로 시간을 측정할 수 있다.
#include <stdio.h>
#include <time.h>
int main() {
clock_t start = clock();
int sum = 0;
for (int i = 0; i < 10000; ++i)
for(int j = 0; j < 10000; ++j)
sum += 1;
clock_t end = clock();
printf("소요 시간: %lf\n", (double)(end - start) / CLOCKS_PER_SEC);
}
0.35초가 소요된 것을 확인할 수 있다.
(※ 측정 시간은 같은 코드라도 매번 다를 수 있다.)
Code 설명
① 필요한 헤더파일(.h)을 include 한다.
② 측정하고자 하는 시작 부분에서 clock()
③ 끝나는 위치에서 다시 clock()
④ CLOCKS_PER_SEC 나누어야 초 단위 (second)로 나온다.
CLOCKS_PER_SEC는 1초를 1000 Clock으로 정의한 것으로 time.h에 정의되어 있다.
함수명에서 F12 단축키로 쉽게 헤더파일을 열 수 있습니다. (49번째 줄에서 확인할 수 있다.)
이러한 시간 측정은 알고리즘 문제를 풀 때, 모듈별 병목구간 확인하는데 사용할 수 있다.
Reference
- [알고리즘] 시간 성능 향상을 위한 코드 최적화 (C/C++)
- [알고리즘] 알고리즘 문제에서 시간 복잡도는 어떻게 하는걸까?
- [알고리즘] 코딩 테스트 문제 풀 때, 시간 복잡도 계산해보기
반응형
'프로그래밍 언어 > C 언어' 카테고리의 다른 글
[C] 구조체 (structure) (0) | 2021.03.19 |
---|---|
[C] 조건문 (Switch문 예제) (0) | 2021.03.19 |
[C] 중첩 for문 (한번에) 빠져나오기 (0) | 2021.03.19 |
[C] [전처리기] 헤더파일(.h) 만들어서 include 하기 (2) | 2021.03.06 |
[C] #include "헤더파일" & #include <헤더파일> (0) | 2021.03.06 |
댓글