微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – 为什么gettimeofday()间隔偶尔会消极?

我有一个实验性的库,我试图测量它的性能.为此,我写了以下内容

struct timeval begin;
gettimeofday(&begin,NULL);
{
    // Experiment!
}
struct timeval end;
gettimeofday(&end,NULL);

// Print the time it took!
std::cout << "Time: " << 100000 * (end.tv_sec - begin.tv_sec) + (end.tv_usec - begin.tv_usec) << std::endl;

偶尔,我的结果包括负面时间,其中一些是荒谬的.例如:

Time: 226762
Time: 220222
Time: 210883
Time: -688976

这是怎么回事?

最佳答案
你有一个错字.更正了最后一行(注意0的数量):

std::cout << "Time: " << 1000000 * (end.tv_sec - begin.tv_sec) + (end.tv_usec - begin.tv_usec) << std::endl;

顺便说一下,timersub是一种内置方法,用于获取两个时间间隔之间的差异.

原文地址:https://www.jb51.cc/linux/440407.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐