我有下面的代碼片段,我試圖評估時需要通過CPUCPU時間測量
但是我得到一些奇怪的結果
struct timeval begin, end;
double cpu_time=0.0;
gettimeofday(&begin, NULL);
long cpu_sum = 0;
for (i = 0; i < size; i++) {
cpu_sum += array[i] * array[i];
}
gettimeofday(&end, NULL);
cpu_time = end.tv_sec - begin.tv_sec * 1000;
cpu_time += (end.tv_usec - begin.tv_usec)/1000;
printf("calculated sum: %d using CPU in %lf ms \n", cpu_sum, cpu_time);
樣品結果= 1296217442.000000毫秒
我不要以爲這是以毫秒爲單位的正確時間值。 任何人都可以在這裏幫助什麼錯?
任何幫助,將不勝感激。
感謝
雖然知道它不可移植 - 'getrusage()'是POSIX定義的函數。 – Alnitak
@Alnitak,你爲什麼認爲這不是便攜式?它也是(可選的)POSIX的一部分。如果你真的想要可移植,C庫中的'clock'可能是更好的選擇。關於用戶時間,這應該給你與'getrusage'相同的信息。 –
@JensGustedt它不在MacOS X上,也不在FreeBSD上。 – Alnitak