Ⅰ 關於計算C語言程序運行時間
頭文件time.h
int a=clock();//從這開始計時
這放要測試時間的代碼
int b=clock();//到這結束
int c=b-a;//算出來的單位是毫秒
Ⅱ c語言怎麼測試一段程序的運行時間
C/C++中的計時函數是clock(),而與其相關的數據類型是clock_t。在MSDN中,查得對clock函數定義如下:
clock_t clock( void );
這個函數返回從「開啟這個程序進程」到「程序中調用clock()函數」時之間的CPU時鍾計時單元(clock tick)數,在MSDN中稱之為掛鍾時間(wal-clock)。其中clock_t是用來保存時間的數據類型,在time.h文件中,我們可以找到對它的定義:
#ifndef _CLOCK_T_DEFINED
typedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數。在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鍾會有多少個時鍾計時單元,其定義如下:
#define CLOCKS_PER_SEC ((clock_t)1000) //CLOCKS_PER_SEC為系統自定義的
可以看到每過千分之一秒(1毫秒),調用clock()函數返回的值就加1。下面舉個例子,你可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:
void elapsed_time()
{
printf("Elapsed time:%u secs./n",clock()/CLOCKS_PER_SEC);
}
當然,你也可以用clock函數來計算你的機器運行一個循環或者處理其它事件到底花了多少時間:
#include 「stdio.h」
#include 「stdlib.h」
#include 「time.h」
int main( )
{
long i = 10000000L;
clock_t start, finish;
double Total_time;
/* 測量一個事件持續的時間*/
printf( "Time to do %ld empty loops is ", i );
start = clock();
while( i--) ;
finish = clock();
Total_time = (double)(finish-start) / CLOCKS_PER_SEC;
printf( "%f seconds/n", Total_time);
return 0;
}
在筆者的機器上,運行結果如下:
Time to do 10000000 empty loops is 0.03000 seconds
上面我們看到時鍾計時單元的長度為1毫秒,那麼計時的精度也為1毫秒,那麼我們可不可以通過改變CLOCKS_PER_SEC的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發現這樣是不行的。在標准C/C++中,最小的計時單位是一毫秒。
Ⅲ 計算C語言程序運行時間(hello world)
現在的計算機速度這么快,1秒鍾執行的代碼很多很多。
所以你這樣求一句代碼的執行時間是不太現實的。
你可以
#include "time.h"
#include "stdio.h"
main()
{
double start, finish;
start = clock();//取開始時間
for(int i=0;i<10000;i++)
printf("Hello, World!\n");
finish = clock();//取結束時間
printf( "%f seconds\n",(finish - start) / CLOCKS_PER_SEC);//這里的時間就是10000倍的
}
Ⅳ c++如何計算程序運行時間並輸出
c++計算程序運行時間:
一、clock()計時函數:
clock()是C/C++中的計時函數,而與其相關的數據類型是clock_t。clock函數定義如下:clock_t clock(void) ;簡單而言,就是該程序從啟動到函數調用佔用CPU的時間。這個函數返回從「開啟這個程序進程」到「程序中調用clock()函數」時之間的CPU時鍾計時單元(clock tick)數,在MSDN中稱之為掛鍾時間(wal-clock);若掛鍾時間不可取,則返回-1。其中clock_t是用來保存時間的數據類型。
二、相關定義:
在time.h文件中,我們可以找到對clock_t()的定義:#ifndef _CLOCK_T_DEFINEDtypedef long clock_t;
#define _CLOCK_T_DEFINED
#endif
很明顯,clock_t是一個長整形數。
在time.h文件中,還定義了一個常量CLOCKS_PER_SEC,它用來表示一秒鍾會有多少個時鍾計時單元,其定義如下:#define CLOCKS_PER_SEC ((clock_t)1000)
三、使用實例:
//計算一段程序運行的時間
#include<iostream>
#include<ctime>
using namespace std;
int main()
{
clock_t startTime,endTime;
startTime = clock();//計時開始
for (long i = 0; i < 2147483640; i++)
{
i++;
}
endTime = clock();//計時結束
cout << "The run time is: " <<(double)(endTime - startTime) / CLOCKS_PER_SEC << "s" << endl;
system("pause");
return 0;
}
//注釋在:VC++6.0中可以用CLK_TCK替換CLOCKS_PER_SEC。
Ⅳ C語言求一個程序運行時間
C/C++中的計時函數是clock()。
所以,可以用clock函數來計算的運行一個循環、程序或者處理其它事件到底花了多少時間,具體參考代碼如下:
#include「stdio.h」
#include「stdlib.h」
#include「time.h」
intmain(void)
{
longi=10000000L;
clock_tstart,finish;
doubleration;
/*測量一個事件持續的時間*/
printf("Timetodo%ldemptyloopsis",i);
start=clock();
while(i--);
finish=clock();
ration=(double)(finish-start)/CLOCKS_PER_SEC;
printf("%fseconds ",ration);
system("pause");
}
Ⅵ 怎樣知道C語言運行一個程序用了多長時間
在程序開始時調用一次time()結束時調用一次time(),兩次相減就能獲得秒數。
例:
#include
<time.h>
#include
<stdio.h>
int
main()
{
int
iStartTime
=
time(NULL);
int
i
=
1;
int
iEndTime;
while
(i
>
0)//這里應該放你要運行的程序
{
i++;
}
iEndTime
=
time(NULL);
printf("%ds
elapsed.\n",iEndTime-iStartTime);
return
0;
}
但這個方法精度很低,只能精確到秒。要更高的精確度需要調用操作系統的API。如在Windows下,精確到毫秒級:
#include
<windows.h>
#include
<stdio.h>
int
main()
{
unsigned
uStartTime
=
GetTickCount();//該函數只有在Win2000及以上的版本才被支持
int
i
=
1;
unsigned
uEndTime;
while
(i
>
0)
{
i++;
}
uEndTime
=
GetTickCount();
printf("%ums
elapsed.\n",uEndTime-uStartTime);
return
0;
}