ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C, C++ 코드 실행 시간 / clock() 함수 / time() 함수
    [C , C++] 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
    반응형

    댓글

S.B. All Rights Reserved.