欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

c語言記錄運行時間的函數 c語言記錄運行時間的函數怎么寫

C語言求一個程序運行時間

C/C++中的計時函數是clock()。

創(chuàng)新互聯(lián)公司服務項目包括萊西網站建設、萊西網站制作、萊西網頁制作以及萊西網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,萊西網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到萊西省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!

所以,可以用clock函數來計算的運行一個循環(huán)、程序或者處理其它事件到底花了多少時間,具體參考代碼如下:

#include?“stdio.h”

#include?“stdlib.h”

#include?“time.h”

int?main(?void?)

{

long????i?=?10000000L;

clock_t?start,?finish;

double??duration;

/*?測量一個事件持續(xù)的時間*/

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?);

system("pause");

}

C語言中如何輸出顯示程序的運行時間? 望賜教!

BOOL?QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);可以返回硬件支持的高精度計數器的頻率。先調用QueryPerformanceFrequency()函數獲得機器內部計時器的時鐘頻率。接著在需要嚴格計時的事件發(fā)生前和發(fā)生之后分別調用QueryPerformanceCounter(),利用兩次獲得的計數之差和時鐘頻率,就可以計算出事件經歷的精確時間。

#include?"stdafx.h"

#include?windows.h

#include?time.h

#include??"process.h"

#define?random(x)?(rand()%x)

int?_tmain(int?argc,?_TCHAR*?argv[])

{

LARGE_INTEGER?fre?=?{?0?};??//儲存本機CPU時鐘頻率

LARGE_INTEGER?startCount?=?{?0?};

LARGE_INTEGER?endCount?=?{?0?};

QueryPerformanceFrequency(fre);//獲取本機cpu頻率

//開始計時

QueryPerformanceCounter(startCount);

//運算

for?(int?i?=?0;?i??10000000;?i++)

{

float?fTem1?=?random(100)*random(1000)*random(10000)*random(100000);

}

//結束計時

QueryPerformanceCounter(endCount);

//計算時間差

double?dTimeTake?=?((double)endCount.QuadPart?-?(double)startCount.QuadPart)?/?(double)fre.QuadPart;

printf("用時%f\n",?dTimeTake);

system("pause");

return?0;

}

C語言中有沒有用于計時的函數?怎么用?

CLOCK()函數:

clock()是C/C++中的計時函數,而與其相關的數據類型是clock_t。在MSDN中,查得對clock函數定義如下:

clock_t

clock(void)

;

這個函數返回從“開啟這個程序進程”到“程序中調用clock()函數”時之間的CPU時鐘計時單元(clock

tick)數,在MSDN中稱之為掛鐘時間(wal-clock);若掛鐘時間不可取,則返回-1。其中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)

可以看到每過千分之一秒(1毫秒),調用clock()函數返回的值就加1。下面舉個例子,你可以使用公式clock()/CLOCKS_PER_SEC來計算一個進程自身的運行時間:

void

elapsed_time()

{

printf("Elapsed

time:%u

secs.\n",clock()/CLOCKS_PER_SEC);

}

當然,你也可以用clock函數來計算你的機器運行一個循環(huán)或者處理其它事件到底花了多少時間:

#include

stdio.h

#include

stdlib.h

#include

time.h

int

main(void)

{

long

i

=

10000000L;

clock_t

start,

finish;

double

duration;

/*

測量一個事件持續(xù)的時間*/

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

);

system("pause");

}

在筆者的機器上,運行結果如下:

Time

to

do

10000000

empty

loops

is

0.03000

seconds

上面我們看到時鐘計時單元的長度為1毫秒,那么計時的精度也為1毫秒,那么我們可不可以通過改變CLOCKS_PER_SEC的定義,通過把它定義的大一些,從而使計時精度更高呢?通過嘗試,你會發(fā)現這樣是不行的。在標準C/C++中,最小的計時單位是一毫秒。

time_t

time(

time_t

*timer

);

返回值是1970年到現在的秒數

用long型接就可以了

參數也是同樣意義

long

time_s

=

0;

time_s

=

time(

NULL

);

//

time_s就是1970年到現在的秒數

或者

long

*

time_s

=

NULL;

time(time_s);

//

*time_s就是1970年到現在的秒數

要計算前后一段時間的話之前取一次time,之后取一次相減就知道用了多少秒了

那位高手知道C語言中如何查看程序運行時間

獲取程序運行時間:

在time.h里有函數clock();本身這個函數取得的時間好像是ms,要取得s就

寫成clock()/CLOCKS_PER_SEC;但CLOCKS_PER_SEC是在time.h里定義的,如果沒這個定義

那只能用clock();取得ms;這個函數的執(zhí)行不會中途停止,如果是在windows系統(tǒng)下,因為它是

多任務系統(tǒng),它需要在各任務之間切換,如果在測試過程中,執(zhí)行其他程序,所其得的時間,就會

出現差別,還有windows運行速度相當快,對于小型的測試,所得的時間幾乎為0,因此最好將

要測試的過程執(zhí)行100次或以上,然后再將取得的時間執(zhí)行次數;輸出非常耗時間,沒什么必要

的話,就不要輸出

這是一個測試選擇排序的程序

#include

stdio.h

#include

stdlib.h

#include

time.h

#define

M

1000

/*

執(zhí)行次數

*/

#define

N

500

/*

數組大小

*/

void

SelectSort(int

*a,int

l,int

r)

{

int

i,j,v;

for

(i=0;ir;i++)

{

for

(j=i+1;j=r;j++)

{

if

(*(a+i)*(a+j))

v=*(a+i),*(a+i)=*(a+j),*(a+j)=v;

}

}

}

void

main()

{

int

a[N],i,j;

double

start,finish;

/*

開始時間,結束時間

*/

start=(double)clock();

/*

我的time.h內沒有CLOCKS_PER_SEC

*/

for

(j=0;jM;j++)

{

/*

執(zhí)行M次

*/

for

(i=0;iN;*(a+i++)=rand()%10);

/*

每次重新賦值

*/

SelectSort(a,0,N-1);

}

finish=(double)clock();

printf("%.4fms",(finish-start)/M);

getchar();

}

分享名稱:c語言記錄運行時間的函數 c語言記錄運行時間的函數怎么寫
分享鏈接:http://www.chinadenli.net/article2/dohgpic.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站制作品牌網站制作App開發(fā)微信小程序標簽優(yōu)化網站策劃

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網站優(yōu)化