1. 程式人生 > >測試一段C程式碼的執行時間(windows系統和ubuntu系統)

測試一段C程式碼的執行時間(windows系統和ubuntu系統)

//測試一段C程式碼的執行時間    
#include <stdio.h>    //注意這裡標頭檔案有所不同  
#include "time.h"     
int main()                   // 主函式的形式有所不同  
{  
long i = 10000000;    
clock_t start, finish;    
double duration;    
printf( "Time to do %ld empty loops is ", i );     
start = clock();    
while( i-- ) ;    
finish = clock();    
duration = (double)(finish - start) / CLOCKS_PER_SEC;    
printf( "%f seconds\n", duration );    
while(1);    
return 0;    
}    

這是ubuntu系統下的程式碼:

下面時windows系統下的程式碼:

// Tes_time.cpp : 定義控制檯應用程式的入口點。
//測試一段C程式碼的執行時間
#include "stdafx.h"
#include "time.h"
nt _tmain(int argc, _TCHAR* argv[])
{long i = 10000000;
clock_t start, finish; 
double duration;
 printf( "Time to do %ld empty loops is ", i );
 start = clock(); while( i-- ) ;
 finish = clock(); 
duration = (double)(finish - start) / CLOCKS_PER_SEC; 
printf( "%f seconds\n", duration );while(1);return 0;
}
執行的時間為:

可見ubuntu下的執行時間未必一定比在windows下的要快。注意在這兩個系統中需要使用不同的標頭檔案,這是因為window下的是C++的工程。

以下是利用上面的程式在ubuntu系統下測試Retinex演算法做卷積操作(FFT和反FTT)的時間,以下是處理三通道8位資料的彩色影象,採用15,80,250三種尺度的卷積所花費的時間(Intel i3-2130 3.4GHz*4 /3.9GB/Ubuntu Kylin15.10 32位):