Измерение времени в программе C
Мне нужно измерить реальное и виртуальное (CPU) время выполнения цикла. Этот цикл включает в себя многопроцессорные и дочерние процессы.
Я пытался с процессором:
clock_t start, end;
cpu_time_used=((double)(end-start)/CLOCKS_PER_SEC); //in sec
и в режиме реального времени:
struct timeval tv1, tv2;
gettimeofday(&tv1, NULL);
gettimeofday(&tv2, NULL);
printf("Total time = %f sec. \n", (double)(tv2.tv_usec - tv1.tv_usec) / 1000000) + (tv2.tv_sec - tv1.tv_sec));
Но измерения не адекватны. Насколько я понимаю, в этом случае процессорное время должно быть немного больше, но между ними почти нет разницы.