Мне нужно измерить время внутри программы C. Я гуглил и нашел два варианта: gettimeofday()
и time()
системные вызовы. Например:
#include <time.h>
...
time_t start, end;
double seconds;
time(&start);
/* Run some complex algorithm ... */
time(&end);
seconds = difftime(end, start);
Или
#include <sys/time.h>
...
struct timeval start, end;
double elapsed_time;
gettimeofday(&start, NULL);
/* Data processing */
gettimeofday(&end, NULL);
/* calculate time in ms. */
elapsed_time = (end.tv_sec - start.tv_sec) * 1000.0;
elapsed_time += (end.tv_usec - start.tv_usec) / 1000.0;
Итак, как я понимаю, второй метод дает более высокую точность (милли / микросекунды), а первый возвращает истекшее время только в секундах. , Я прав?