我有一个从C ++生成的程序的.exe。
是否有一些简单的片段我可以插入以获得程序所花费的时间。我有可用的C ++代码,但我不想调整它。
答案 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退出之前,应该可以通过一次额外的方法调用来完成这个技巧。