我需要計算C++程序的執行時間。我目前使用C風格的頭,<time.h>
用下面的代碼:使用C++計算執行時間,而不是使用<time.h>
clock_t tStart = clock();
...
printf("Execution Time: %.2fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);
是否有一個C++頭,我可以用它來計算執行時間?請注意,這需要跨平臺兼容。
我需要計算C++程序的執行時間。我目前使用C風格的頭,<time.h>
用下面的代碼:使用C++計算執行時間,而不是使用<time.h>
clock_t tStart = clock();
...
printf("Execution Time: %.2fs\n", (double)(clock() - tStart)/CLOCKS_PER_SEC);
是否有一個C++頭,我可以用它來計算執行時間?請注意,這需要跨平臺兼容。
您可以使用C標頭的C++版本。加入「C」開頭,並刪除「.H」
所以你需要
#include <ctime>
的其餘部分保持不變,因爲你可以使用C的方法。
+1。請記住,如果你使用C++頭文件,這些符號將在'std'命名空間內定義,所以它將成爲'std :: clock' – 2010-07-01 17:16:47
沒錯,我忘了它。 – 2010-07-01 19:30:46
時間和時鐘函數是不同平臺之間的事物之一。
我喜歡使用Boost的定時器庫來實現你想要做的事情:http://www.boost.org/doc/libs/1_43_0/libs/timer/timer.htm,因爲它很好地跨平臺,並且使用起來非常簡單。
取決於您是否需要Wall或CPU時間。例如在OpenVMS上,它提供了CPU時間,但在大多數Linux版本中,它提供了延時。 – Salgar 2010-07-01 17:00:17
因爲它們是C標準的一部分,所以'clock()'和'time()'不應該因平臺而異(除了CLOCKS_PER_SEC的值以及它們是否工作)。 – 2010-07-01 17:59:58
@ Mike-我的印象是,正如Salgar指出的,根據實施情況,時鐘和時間在提供CPU時間或掛鐘時間方面可能會有所不同。或者至少在某些時候,我相信這是事實(我很久以前一直在使用boost :: timer很長一段時間,因爲有些問題我很久以前就不記得細節)。 – MarkD 2010-07-01 20:40:37
爲什麼你不想使用time.h? – Salgar 2010-07-01 16:58:02
我不反對它,但我通常不喜歡混合和匹配c和C++代碼。 – Elpezmuerto 2010-07-01 17:00:33
改爲使用。 –
2010-07-01 17:01:47