我有一个程序来计算pub-sub模型中对象的延迟。我已将以下函数用于时间戳:
uint64_t GetTimeStamp() {
struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;
}
延迟是以发布者和订阅者的时间戳差异来衡量的。所以,我担心测量的延迟单位。它是以秒还是微秒?
答案 0 :(得分:8)
timeval
结构有tv_sec
,它为您提供秒的绝对值,tv_usec
,它在微秒内为您提供剩余分数
所以,你可以在几秒钟内得到分辨率。
有关详细信息,请http://www.gnu.org/software/libc/manual/html_node/Elapsed-Time.html
答案 1 :(得分:4)
tv.tv_sec给出第二个计数,tv.tv_usec给出剩余的微秒计数。
gettimeofday()原则及其准确性:
How is the microsecond time of linux gettimeofday() obtained and what is its accuracy?
Is gettimeofday() guaranteed to be of microsecond resolution?