[C , C++]

C, C++ 코드 실행 시간 / clock() 함수 / time() 함수

말하는펭귄 2020. 8. 6. 16:46
728x90
반응형

 

 

오늘은 C, C++ 프로그램에서 코드가 실행되는데 걸리는 시간을 측정하는 방법을 포스팅하겠습니다.

C와 C++의 스타일 차이는 크게 헤더파일과 출력 부분이 있으니 본인의 코딩 방식에 맞는 스타일을 사용하면 되겠습니다.

주석 처리한 /*실행 시간을 측정하고 싶은 코드*/  부분에  본인의 코드를 넣어 사용하면 될 것입니다.

 

1.  clock() 함수를 이용한 방법

clock() 함수는 기본 ms단위로 측정합니다.

clock() 함수는 1초에 1000 clock으로 정의되어 있으므로 1 clock은 1ms 입니다. 

따라서 미리초 단위가 아닌 초 단위의 측정을 원한다면 최종적으로 구하는 값인 (finish-start)의 값을 CLOCKS_PER_SEC로 나누어 주면 됩니다.

C style

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <time.h>
 
 
int main() {
    clock_t start, finish;
    double duration;
    
    start = clock();
 
    /*실행 시간을 측정하고 싶은 코드*/
    
    finish = clock();
    
    duration = (double)(finish - start) / CLOCKS_PER_SEC;
    printf("%f초", duration);
    
    return 0;
}
cs

 

C++ style

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <ctime>
using namespace std;
 
int main() {
    clock_t start, finish;
    double duration;
 
    start = clock();
    
    /*실행 시간을 측정하고 싶은 코드*/
 
    finish = clock();
 
    duration = (double)(finish - start) / CLOCKS_PER_SEC;
    cout << duration << "초" << endl;
 
    return 0;
}
cs

 

 

 

2.  time() 함수를 이용한 방법

time() 함수는 기본 초(s) 단위로 측정합니다.

C style

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
#include <time.h>
 
int main() {
    time_t start, finish;
    double duration;
 
    start = time(NULL); 
 
    /*실행 시간을 측정하고 싶은 코드*/
 
    finish  = time(NULL); 
    
    duration = (double)(finish - start);
    printf("%f초", duration); 
    
    return 0;
}
cs

 

C++ style

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <ctime>
using namespace std;
 
int main() {
    time_t start, finish;
    double duration;
 
    start = time(NULL); 
 
    /*실행 시간을 측정하고 싶은 코드*/
 
    finish  = time(NULL); 
    
    duration = (double)(finish - start);
    cout << duration << "초" << endl;
    
    return 0;
}
cs

 

 

 

 
728x90
반응형