Заметки
May 11, 2020

Замерить время C

#include <sys/time.h>
#include <time.h>
...
struct timeval t1, t2, t3;
gettimeofday(&t1, NULL);
...
gettimeofday(&t2, NULL);
timersub(&t2, &t1, &t3);
printf("%ld.%06ld\n", (long)t3.tv_sec, (long)t3.tv_usec);

Если функция (макрос) timersub отсутствует в библиотеке time.h, то можно использовать следующее определение

#define timersub(a, b, result) \
  do { \
    (result)->tv_sec = (a)->tv_sec - (b)->tv_sec; \
    (result)->tv_usec = (a)->tv_usec - (b)->tv_usec; \
    if ((result)->tv_usec < 0) { \
      --(result)->tv_sec; \
      (result)->tv_usec += 1000000; \
    } \
  } while (0)