2016-03-16 128 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

相關問題