我有一个程序可以计算发布-订阅模型中对象的延迟。我使用了以下函数作为时间戳:
uint64_t GetTimeStamp() {
struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;
}延迟是通过发布服务器和订阅服务器的时间戳差异来衡量的。所以,我关心的是测量的延迟单位。是以秒还是微秒为单位?
发布于 2013-07-25 14:31:16
timeval结构有tv_sec和tv_usec,前者提供秒的绝对值,后者提供以微秒为单位的剩余分数。
所以,你可以在微秒内得到分辨率。
有关更多信息,请访问http://www.gnu.org/software/libc/manual/html_node/Elapsed-Time.html
发布于 2013-07-25 14:34:48
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?
https://stackoverflow.com/questions/17850565
复制相似问题