1

我正在编写代码来计时 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() << "s\n";

其中 dr 是对内部带有填充数组的结构的引用,而 secondSum 是对该数组中的不同值求和的函数。

4

1 回答 1

0

您需要将行更改end2 - std::chrono::system_clock::now();end2 = std::chrono::system_clock::now();. 之后,您的代码应该完全按照您的预期工作。

于 2017-04-06T04:15:04.010 回答