본문 바로가기
카테고리 없음

정밀한 시간 측정 (clock, getTickcount, timeGetTime) 함수의 차이와 사용법

by nono22 2023. 12. 11.

정밀한 시간 측정 함수의 차이와 사용법 소개

1. clock 함수

  • C 표준 라이브러리에서 제공하는 함수로, 프로세스 내에서 경과한 CPU 시간을 측정하는데 사용된다.
  • CPU 시간은 프로세서가 얼마나 호스트 시스템을 사용했는지를 나타내며, 실행 시간과는 다른 개념이다.
  • clock 함수는 CPU가 프로세스에 소모한 시간을 반환하고, 초당 클록 틱의 수로 나눠진 값을 반환한다.
  • 다음은 clock 함수의 사용법이다:
#include <time.h>

int main() {
    clock_t start, end;
    double cpu_time_used;

    start = clock();  // 시간 측정 시작

    // 측정할 코드 구간

    end = clock();  // 시간 측정 종료

    cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;  // CPU 시간 계산

    return 0;
}

2. GetTickCount 함수

  • Microsoft Windows 운영 체제에서 제공하는 함수로, 시스템 부팅 이후 경과한 밀리초 단위의 시간을 반환한다.
  • 시간의 정밀도는 운영 체제마다 다를 수 있으며, 대략 10~20ms의 정밀도를 가진다.
  • GetTickCount 함수는 다음과 같이 사용된다:
#include <windows.h>

int main() {
    DWORD start, end;
    DWORD elapsedTime;

    start = GetTickCount();  // 시간 측정 시작

    // 측정할 코드 구간

    end = GetTickCount();  // 시간 측정 종료

    elapsedTime = end - start;  // 경과 시간 계산

    return 0;
}

3. timeGetTime 함수

  • Microsoft Windows 운영 체제에서 제공하는 마이크로초 단위의 시간을 반환하는 함수이다.
  • GetTickCount 함수와 마찬가지로 시간의 정밀도는 운영 체제마다 다를 수 있다.
  • timeGetTime 함수는 다음과 같이 사용된다:
#include <windows.h>

int main() {
    DWORD start, end;
    DWORD elapsedTime;

    start = timeGetTime();  // 시간 측정 시작

    // 측정할 코드 구간

    end = timeGetTime();  // 시간 측정 종료

    elapsedTime = end - start;  // 경과 시간 계산

    return 0;
}

결론

  • 각 함수는 정밀한 시간 측정을 위해 사용되지만, 측정 가능한 범위와 정밀도에 차이가 있다.
  • clock 함수는 CPU 시간을 측정하며, GetTickCount 함수는 밀리초 단위의 시스템 경과 시간을 측정한다.
  • timeGetTime 함수는 마이크로초 단위의 시간을 제공하며, 가장 정밀한 시간 측정이 가능하다.
  • 적절한 함수를 선택하여 시간 측정에 활용하면 프로그램의 성능을 향상시킬 수 있다.

댓글