我有一个程序来计算 pub-sub 模型中对象的延迟。我已将以下函数用于时间戳:
uint64_t GetTimeStamp() {
struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;
}
延迟以发布者和订阅者的时间戳差异来衡量。所以,我担心测量的延迟单位。是秒还是微秒??
我有一个程序来计算 pub-sub 模型中对象的延迟。我已将以下函数用于时间戳:
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() 原理及其准确性: