2014-03-02 107 views
0

通常在IDE中,當您運行程序時,IDE會告訴您運行程序所花費的總時間。在Unix/Linux中使用終端進行編譯和運行時,有沒有辦法獲得運行程序所需的總時間?如何跟蹤程序的總時間?

我知道ctime,它允許獲得自1970年以來的總時間,但是我只想得到程序運行所需的時間。

+0

字面上你所要做的只是[google](https://www.google.cl/?gfe_rd=cr&ei=A3cSU6PTNYWF8QeQy4D4Aw#q=How+to+track+total+time+of+program+linux)你的標題添加Linux。 – ierceg

+0

所有你發現當谷歌搜索是ctime,我提到@ierceg – Valrok

+0

我的壞。問題是谷歌泡沫:昨天我的第一個結果(在桌面上,不是在移動設備上)是[時間](http://en.wikipedia.org/wiki/Time_(Unix))。你一定看過別的。具有諷刺意味的是,今天對我來說,同一個查詢的第一個答案是這個線程。無論如何,抱歉的噪音。 – ierceg

回答

4

可以隨時間啓動程序:

[:~/tmp] $ time sleep 1 

real 0m1.007s 
user 0m0.001s 
sys  0m0.003s 
0

作爲附錄MDSL的答案,如果你想要得到的東西接近測量程序本身,你可以在的開始獲取時間編程並在程序結束時獲得時間(正如你所說,從1970年開始) - 然後從結束時間減去開始時間。

1

你走在正確的軌道上!您可以獲取當前時間,並從程序的結束時間中減去它。下面的代碼說明:

time_t begin = time(0); // get current time 

// Do Stuff // 

time_t end = time(0); // get current time 

// Show number of seconds that have passed since program began // 
std::cout << end - begin << std::endl; 

注:時間間隔爲僅單個第二。如果您需要更高的粒度,我建議您查看精確計時器,例如windows上的QueryPerformanceCounter()或Linux上的clock_gettime()。在這兩種情況下,代碼的工作可能非常相似。