2011-02-07 51 views
3

我使用兩種不同的方式獲取時間clock()和getLocalTime(),因爲我希望CPU時間花費在我的進程上和掛鐘時間花在這個過程上。目前我這樣做:在處理上花費CPU時間與在處理問題上花費的世界時間C++

printf("CPU Time: %gms \n", (((double)(finish-start))/CLOCKS_PER_SEC)*1000.0); 
printf("Clock Time: %ldms \n", (end.sec-begin.sec)*1000+(end.msec-begin.msec)); 

但他們都給了我一樣的確切結果! (運行約30秒),並且我知道CPU不會在這個過程中花費太多時間。我使用正確的功能嗎?謝謝。

回答

1

在Unix系統上,CPU時間可以通過getrusage()來獲得。

+0

現在我在Windows和它在Linux上工作的很好,我不知道爲什麼它不是」合作。 – 2011-02-07 20:34:07

0

clock()不適合便攜式經過的時間。在windows下,它定義爲返回經過的掛牆時間,在unix類型的系統上,它返回已用處理器時間。

我確定有必須是一個便攜式解決方案,我不知道在哪裏看。我會通過提升尋找一個開始。

1

沒有真正的跨平臺,但在Windows上,有兩種可能性:

沒有用他們自己,但我相信無論將給予相同的結果