避免CPU争用

时间:2015-06-15 21:50:24

标签: c++ cpu average chrono

我有一个程序,我想计算它的执行时间:

#include <iostream>
#include <boost/chrono.hpp>

using namespace std;

int main(int argc, char* const argv[])
{


     boost::chrono::system_clock::time_point start = boost::chrono::system_clock::now();

// Intructions to burn time 

    boost::chrono::duration<double> sec = boost::chrono::system_clock::now() - start;
    cout <<"---- time execution is " << sec.count() << ";";
    return 0;
}

例如一次运行后的结果:

----时间执行是0.0223588

这个结果不是很有意识,因为包含了CPU时间。

我有一个想法,通过测试多次运行并达到平均值来避免CPU争用。

问题是:

  • 如何存储上一次运行的时间值?

  • 我们可以通过文件来做吗?

  • 如何逐步计算每次运行后的平均值?

欢迎您提出建议/伪代码。

1 个答案:

答案 0 :(得分:0)

您可以使用2个参数通过命令行传递平均数:当前平均值和执行的迭代次数。 然后: NewAverage =((CurrentAverage * N)+ CurrentValue)/(N + 1); 其中N是迭代次数。