導航:首頁 > 軟體知識 > 如何計算程序運算時間

如何計算程序運算時間

發布時間:2024-01-01 08:13:01

A. 如何計算程序的運行時間,並精確到微秒

1 需要取得系統精確時鍾函數:
1)對於一般的實時控制,使用GetTickCount()函數就可以滿足精度要求,但要進一步提高計時精度,就要採用 QueryPerformanceFrequency()函數和QueryPerformanceCounter()函數。
2)這兩個函數是VC提供的僅供 Windows 9X使用的高精度時間函數,並要求計算機從硬體上支持高精度計時器。
3) QueryPerformanceFrequency()函數和 QueryPerformanceCounter()函數的原型為:

BOOL QueryPerformanceFrequency(LARGE_INTEGER *lpFrequency);

BOOL QueryPerformanceCounter(LARGE_INTEGER *lpCount);
數據類型LARGE—INTEGER既可以是一個作為8位元組長的整型數,也可以是作為兩個4位元組長的整型數的聯合結構,其具體用法根據編譯器是否支持64位而定。該類型的定義如下:
typedef union _LARGE_INTEGER
{
struct
{
DWORD LowPart; // 4位元組整型數
LONG HighPart; // 4位元組整型數
};
LONGLONG QuadPart;

// 8位元組整型數
} LARGE_INTEGER;

4)在進行計時之前,應該先調用QueryPerformanceFrequency()函數獲得機器內部計時器的時鍾頻率。筆者在三種PentiumⅡ機器上使用該函數,得到的時鍾頻率都是1193180Hz。接著,筆者在需要嚴格計時的事件發生之前和發生之後分別調用QueryPerformanceCounter()函數,利用兩次獲得的計數之差和時鍾頻率,就可以計算出事件經歷的精確時間。
以下程序是用來測試函數Sleep(100)的精確持續時間。

LARGE—INTEGER litmp;
LONGLONG QPart1,QPart2;
double dfMinus, dfFreq, dfTim;
QueryPerformanceFrequency(&litmp);
// 獲得計數器的時鍾頻率
dfFreq = (double)litmp.QuadPart;
QueryPerformanceCounter(&litmp);
// 獲得初始值
QPart1 = litmp.QuadPart;
Sleep(100) ;
QueryPerformanceCounter(&litmp);
// 獲得終止值
QPart2 = litmp.QuadPart;
dfMinus = (double)(QPart2 - QPart1);
dfTim = dfMinus / dfFreq;
// 獲得對應的時間值
執行上面程序,得到的結果為dfTim=0.097143767076216(秒)。細心的讀者會發現,每次執行的結果都不一樣,存在一定的差別,這是由於Sleep()自身的誤差所致。

B. java如何計算程序運行時間

第一種是以毫秒為單位計算的。

[java]view plain

//偽代碼

longstartTime=System.nanoTime();//獲取開始時間

doSomeThing();//測試的代碼段

longendTime=System.nanoTime();//獲取結束時間

System.out.println("程序運行時間:"+(end-start)+"ns");

包含所需的包: import java.lang.System;

C. 怎樣用c語言設計計算程序執行的時間

C語言中的頭文件time.h中定義了庫函數clock(),它返回的是從程序運行開始算起的時間,一時鍾周期為單位,time.h還定義了符號:CLOCKS_PER_SEC,即一秒鍾的時鍾周期。這樣就簡單了,在頭文件中加入#include<time.h>,在程序main()主函數的開頭定義long now=0;並給把clock()賦值給now,即now=clock();記錄程序開始時的時間,clock()會繼續增加,但now已經確定為開始那一時刻clock()的值,在程序結尾,算式clock()-now就是程序執行所需的時間,但是是以時鍾周期為單位的,如果想得到以秒為單位的時間只要輸出(clock()-now)/CLOCKS_PER_SEC就是了,即在程序結尾添加
printf("%lf",(clock()-now)/CLOCKS_PER_SEC);就可以了。

D. 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");
}

E. matlab中怎麼計算程序運行時間

Matlab中計算函數運行時間的三種方法:
1、tic和toc組合
計算tic和toc之間那段程序之間的運行時間,它的經典格式為 :
tic
函數
toc
復制函數代碼,當代碼遇到tic時Matlab自動開始計時,運行到toc時自動計算此時與最近一次tic之間的時間。
2、etime(t1,t2)並和clock配合
計算t1,t2之間的時間差,它是通過調用windows系統的時鍾進行時間差計算得到運行時間的,應用的形式:
t1=clock;
函數
t2=clock;
etime(t2,t1)
3、cputime函數來完成
使用方法和etime相似,只是這個是使用cpu的主頻計算的,和前面原理不同,使用格式如下:
t0=cputime
函數
t1=cputime-t0

閱讀全文

與如何計算程序運算時間相關的資料

熱點內容
武漢做全瓷牙哪個醫院技術好 瀏覽:114
交易費用如何處理會計 瀏覽:793
收集評估信息的方式有哪些 瀏覽:305
怎麼看vb數據類型 瀏覽:318
一級代理商是什麼意思 瀏覽:869
cdr數據怎麼設計 瀏覽:236
為什麼混酥類產品口感松酥無層次 瀏覽:369
京東代理點多少錢 瀏覽:859
福清第二技術學校在哪裡 瀏覽:96
地紅黴素產品有哪些 瀏覽:244
如何用小程序查詢wifi密碼 瀏覽:564
安全模式如何設置應用程序 瀏覽:749
外匯交易本金怎麼取出來 瀏覽:773
在線交易網關扣錢怎麼查對方 瀏覽:739
如何做好信息分析與整合 瀏覽:282
科技技術文章在哪裡發 瀏覽:760
生物信息學多久能發文章 瀏覽:394
如何交易郵寄物品 瀏覽:998
查驗員技術等級實行什麼制度 瀏覽:473
程序的應用效果怎麼寫 瀏覽:869