2011-03-12 62 views
0

得到執行程序的時候我用這我需要更好的解決方案用C

clock_t start = clock(); 

    QuickSort(0, ItemCount-1,1); 

printf("Time elapsed: %f\n", ((double)clock() - start)/CLOCKS_PER_SEC); 

我想在納秒來獲得時間。

+3

並使用搜索功能。這幾乎每天都會問到。 – Mat 2011-03-12 19:25:42

回答

0

如果您使用的是類Unix系統,則很可能使用clock_gettime()函數。在Linux中,它在-lrt中找到,我試過的大多數其他系統都在系統C庫中找到它。

應該指出的是,x86有一個非常精確的rdtsc指令。

0

使用方法如下,以獲得代碼的執行時間在納秒的精度struct timespec

struct timespec start, end; 
clock_gettime(CLOCK_REALTIME,&start); 
/* Do something */ 
clock_gettime(CLOCK_REALTIME,&end); 

它返回一個值((((unsigned64)start.tv_sec) * ((unsigned64)(1000000000L))) + ((unsigned64)(start.tv_nsec))))

希望這個答案會更有助於你得到你所需的執行時間(以納秒爲單位)。