我正在编写代码来计时一个for循环,我使用了教授给我的代码,它使用system_clock。我的问题是,在我正在计时的一个 for 循环中,它返回了一个负时间。有时它是不同的数字,但总是负数。
代码如下:
std::chrono::time_point<std::chrono::system_clock> start2, end2;
int sum2 = 0;
std::cout << "Sum on reference ";
start2 = std::chrono::system_clock::now();
for(int i = 0; i < 10000; i++)
{
sum2 = secondSum(dr);
}
end2 - std::chrono::system_clock::now();
std::chrono::duration<double> elapsed_seconds2 = end2 - start2;
std::cout << "sum: " << sum2 << std::endl;
std::cout << "Elapsed time for data processing on reference: " << elapsed_seconds2.count() << "sn";
其中 dr 是对内部具有填充数组的结构的引用,secondSum 是对该数组内不同值求和的函数。
您需要将行end2 - std::chrono::system_clock::now();
更改为end2 = std::chrono::system_clock::now();
。之后,您的代码应该完全按照您的预期工作。