clock_t
clock_t
clock()이 돌려주는 프로세서 시간을 담는 타입이 뭘까요? 그게 바로 clock_t예요. <time.h>에 정의된 타입이에요.
출처: cppreference
본문
clock_t는 프로세스가 사용한 프로세서 시간을 표현할 수 있는 타입이에요. 범위와 정밀도는 구현에 따라 정의돼요.
- C11 이전에는 산술(arithmetic) 타입이었고, C11부터는 실수(real) 타입으로 정의돼요.
typedef /* unspecified */ clock_t;
보통 clock()의 두 호출 결과를 담아 그 차이를 CLOCKS_PER_SEC로 나눠 초를 구하는 식으로 써요.
예시
clock() 전후의 clock_t 값을 재서 반복문이 쓴 CPU 시간을 초로 계산해요.
#include <stdio.h>
#include <time.h>
#include <math.h>
volatile double sink;
int main (void)
{
clock_t start = clock();
for(size_t i=0; i<3141592; ++i)
sink+=sin(i);
clock_t end = clock();
double cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
printf("for loop took %f seconds to execute \n", cpu_time_used);
}
가능한 출력(예시):
for loop took 0.271828 seconds to execute
더 알아보기
- 실제 프로세서 시간을 돌려주는
clock()함수와 짝을 이뤄요. - 초당 클록 틱 수를 나타내는
CLOCKS_PER_SEC상수도 함께 보면 좋아요. - cppreference의 clock_t 원문을 참고해요.