测量程序所用的时间

时间:2012-02-24 07:14:14

标签: c++ visual-c++

我有一个从C ++生成的程序的.exe。

是否有一些简单的片段我可以插入以获得程序所花费的时间。我有可用的C ++代码,但我不想调整它。

3 个答案:

答案 0 :(得分:2)

了解Boost.Timers。用于测量时间的代码示例将是:

#include <boost/timer/timer.hpp>

boost::timer t0;
// do smth
std::cout<<"elapsed: "<< t0.elapsed() << " s\n";

答案 1 :(得分:0)

衡量程序某些部分(或全部)所用时间的一种简单方法是在开始时拍摄当前时间的快照,然后在结束时从当前时间中减去它。在Windows上,您可以使用GetTickCount功能。我通常将它包装在一个小帮助器结构中:

struct Duration {
  Duration( const char *name )
    : m_start( ::GetTickCount() ),
    m_name( name )
 { }

  ~Duration() {
    std::cout << m_name << " executed in " << ::GetTickCount() - start << "ms" << std::endl;
  }

  const DWORD m_start;
  const std::string m_name;
};

你可以像这样使用它:

int main()
{
  Duration d( "Program" );

  // Heavy work being done here
}

stdout对象被销毁时,会向Duration打印一些时间信息。

答案 2 :(得分:0)

在unix上你只需要在可执行命令前添加“time”,如果你偶然安装了Cygwin,那么我建议使用它。否则,请检查Performance Counters,这是MS平台上过程性能数据的来源。在app退出之前,应该可以通过一次额外的方法调用来完成这个技巧。