gpt4 book ai didi

c++ - 为什么 gettimeofday() 间隔偶尔为负数?

转载 作者:IT王子 更新时间:2023-10-29 01:05:21 30 4
gpt4 key购买 nike

我有一个实验库,我正在尝试测量其性能。为此,我编写了以下内容:

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 是一种获取两个时间间隔之间差异的内置方法。

关于c++ - 为什么 gettimeofday() 间隔偶尔为负数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2780314/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com