gettimeofday()的单位是多少?

时间:2013-07-25 06:26:48

标签: c++ c gettimeofday

我有一个程序来计算pub-sub模型中对象的延迟。我已将以下函数用于时间戳:

uint64_t GetTimeStamp() {
    struct timeval tv;
    gettimeofday(&tv,NULL);
    return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;
}

延迟是以发布者和订阅者的时间戳差异来衡量的。所以,我担心测量的延迟单位。它是以秒还是微秒?

2 个答案:

答案 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?