나는 1uS마다 호출하려는 타이머 기능 (폴링 용)이 있지만 다른 작업을 실행하기에 충분한 시간이 있는지 확인하여 소요 시간을 측정하고 싶습니다 이 기능을 실행합니다. 그 때문에 나는 내 기능의 시작과 맨 마지막에 clock_gettime()
을 사용할 수 있다고 생각했다. 이제 내 문제는 반환 된 두 시간이 항상 같고 내 기능이 1 나노초 미만으로 진행되는 것을 믿지 않는다는 것입니다. 가능한 기간이 아닙니다. CPU는 800MHz로 클럭됩니다. 내 코드 :타이머 기능의 지속 시간 측정
struct timespec tempTime_start;
struct timespec tempTime_stop;
static int print = 0;
if(clock_gettime(CLOCK_REALTIME, &tempTime_start))
printf("Error in clock_gettime(): %s",strerror(errno));
...
...MY FUNCTION...
int i = 0;
for (i = 0;i<100000;i++);
if(clock_gettime(CLOCK_REALTIME, &tempTime_stop))
printf("Error in clock_gettime(): %s",strerror(errno));
if (print <= 100){
printf("%dDuration: %d\n",print,(tempTime_stop.tv_nsec - tempTime_start.tv_nsec));
printf("Start: %d\n",tempTime_start.tv_nsec);
printf("Stop: %d\n",tempTime_stop.tv_nsec);
print++;
}
내가 뭘 잘못하고 있니? 시작 및 종료 시간은 항상 동일합니다 ...