У меня есть программа для расчета задержки объекта в паб-под модели. Я использовал следующую функцию для отметки времени:
uint64_t GetTimeStamp() {
struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;
}
Задержка измеряется как разница меток времени в издателе и подписчике. Итак, меня беспокоит единица измерения задержки. Это в секундах или микросекундах ??
timeval
структура имеет tv_sec
, который дает вам абсолютное значение для секунд, и tv_usec
, который дает вам остальной доля в микросекундах.
Таким образом, вы можете получить разрешение в микросекундах.
Для дополнительной информации, http://www.gnu.org/software/libc/manual/html_node/Elapsed-Time.html
tv.tv_sec дает второй счет, tv.tv_usec — оставшийся микросекундный счет.
Для принципа gettimeofday () и его точности:
Как получается микросекундное время в linux gettimeofday () и какова его точность?
Обязательно ли gettimeofday () имеет микросекундное разрешение?