2016-03-16 95 views
0

我很新的C++,我需要打印我的程序的执行时间与4位(X.XXX)毫秒 - 我试图用如何计算以毫秒为单位执行时间

double start_s=clock(); 
// my program here 
double stop_s=clock(); 
cout << "time: " << (stop_s) << endl; 

我得到了0. 我做错了什么? 顺便说一句我正在使用(并且必须使用,大学项目)VS2010,所以chrono不是一种选择。

+2

'时钟'是非常原始的。改用['std :: chrono'](http://en.cppreference.com/w/cpp/chrono)。 –

+0

提供的代码无法提供此输出。 –

回答

6

使用chrono标题中的std::chrono::high_resolution_clock

auto started = std::chrono::high_resolution_clock::now(); 
DoWork(); 
auto done = std::chrono::high_resolution_clock::now(); 

std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(done-started).count(); 

您还可以,如果你想转换为std::chrono::secondsstd::chrono::nanoseconds

这是tutorial测量执行时间chrono


编辑:,如果你的编译器不支持chrono,然后 得到一个较新的一个 采取的wget源代码看看src/ptimer.c。它适用于Windows和Linux,并使用本机API。

+1

另一个例子是在这里:http://www.cplusplus.com/reference/chrono/high_resolution_clock/now/ – yasouser

+0

@ yasouser,是的,我只是要包括这个链接。 – ForceBru

+0

我正在使用VS2010,无法找到计时标头。这有意义吗? – Gilzy

相关问题