Что такое единица измерения gettimeofday()?
У меня есть программа для расчета задержки объекта в паб-модель. Я использовал следующую функцию для отметки времени:
uint64_t GetTimeStamp() {
struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;
}
Задержка измеряется как разница меток времени в издателе и подписчике. Итак, меня беспокоит единица измерения задержки. Это в секундах или микросекундах??
2 ответа
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() имеет микросекундное разрешение?