clock() 함수가 0을 리턴해버립니다.

shiefra의 이미지

#include <stdio.h>
#include <time.h>

int main (void)
{
        clock_t time;

        time = clock();

        return 0;
}

cpu duration을 측정해서 출력하는데 자꾸 0이 나오는겁니다.
그래서 저 코드를 gdb로 돌려서 time을 봤더니 0이네요 ?
원인이 뭔가요

monac의 이미지

이유가 뭘까요..뭔가 한일이 없는게 아닐까요? loop 를 돌려서 cpu를 사용해 보세요.

#include <stdio.h> 
#include <time.h> 

int main (void) 
{ 
	clock_t time; 
	int i;
	for(i=0;i<INT_MAX;i++)
		;
	time = clock(); 
	printf("incremented %d times in %d CPU time\n", i, time);
	return 0; 
}

컴퓨터가 느리니 이것도 생각보다 오래 걸리는군요.

doldori의 이미지

clock()은 프로세스가 시작한 시점을 0으로 합니다. main()을 시작하자마자
clock()을 호출했으니 0이 되는 것이죠. 정확히 0은 아니겠지만 타이머의
정밀도로는 구별할 수 없을 겁니다.