【发布时间】:2013-07-24 21:44:49
【问题描述】:
我有一个程序可以计算 pub-sub 模型中对象的延迟。我使用了以下函数作为时间戳:
uint64_t GetTimeStamp() {
struct timeval tv;
gettimeofday(&tv,NULL);
return tv.tv_sec*(uint64_t)1000000+tv.tv_usec;
}
延迟以发布者和订阅者的时间戳差异来衡量。所以,我担心测量的延迟单位。是秒还是微秒??
【问题讨论】:
-
man gettimeofday查看 struct timeval 详细信息 -
只要看看你用什么常数乘以秒来得到别的东西。 1 秒 = 1000000 微秒。
-
严格来说,这是报告的单位,而不是测量单位。
-
如果您有 C++11 (gcc 4.7.2+),请查看 std::chrono(cppreference 有一个很好的示例),以毫秒为单位的示例用法:daniweb.com/software-development/cpp/code/445750/…。 std::chrono 的优点之一是在“毫秒”->“微秒”或“纳秒”上快速搜索和替换,并且您拥有该分辨率。
标签: c++ c gettimeofday