2013-04-04 67 views
1

我試圖衡量下一個代碼塊的執行時間,我有這樣的事情在我的代碼:時鐘() - 執行時間爲c函數

clock_t begin, end; 
double time_spent; 
begin = clock(); 
ATL_dsymv(122,n,alfa,A,n,X,1,beta,Y,1); 
end = clock(); 
time_spent = (double)(end - begin)/CLOCKS_PER_SEC; 
printf ("(%f seconds)",time_spent); 

但它總是返回:(0.000000秒)。我在更簡單的代碼塊上嘗試了同樣的事情,但它有相同的結果。我究竟做錯了什麼?非常感謝。

+1

使用相同的代碼,但執行定時部分數百萬次。 – 2013-04-04 22:38:20

+0

代碼運行需要多長時間?預期的價值大致是多少? – 2013-04-04 22:38:47

+0

2秒以下 – biggdman 2013-04-04 22:39:48

回答

3

clock通常有很差分辨率,大約10毫秒。這很可能是你的問題。如果您使用POSIX系統,請使用clock_gettimeCLOCK_PROCESS_CPUTIME_ID時鐘獲得高分辨率結果。其他類型的系統可能具有系統特定的方式來實現相同的目的。