有關執行時間......... |
答題得分者是:領航天使
|
天外來客
初階會員 發表:22 回覆:199 積分:44 註冊:2001-11-27 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 小弟是個新手... 想請問一下~~ 以寫程式來說.. 達成目的的寫法有很多 但要怎麼知道 那個方法是最快的呢?? 有什麼工具 可以測試嗎??演算法學裡面有可以計算程式Computing Time的科學方法, 可以從不同的原始程式中計算出所花費的時間, 但那是就理論上的方法優略計算之, 實際情況得視運算中Ram的大小,所需硬碟存取資源頻率,與CPU快慢等因素, 我不知道有何工具可以用,我都是在程式前後加上時間測量, 然後慢慢改進寫法,得到較好的演算法! 再來就是資料庫應用程式,在CPU演算上所花得時間不多, 反而對資料處理的方式影響程式效能更大, 例如:採用Database Server運算較快的SQL指令,BDE連接資料庫的處理技術, 降低Database Server傳回的資料量大小等,這才是值得程式設計師多花時間研究的! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
蜻蜓草
一般會員 發表:22 回覆:30 積分:10 註冊:2002-03-18 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
引言: 嗯~~是這樣沒錯 ------排除演算法的因素後---- 小弟主要是怕在迴圈中用到了比較耗時的指令or作法, 數量要是乘起來, 實在是相當恐怖 不知 Admin 兄的測量是量 "時間" 還是有辦法量 "clock" 呢? 不知是否願意分享呢?只是簡單的在程式前後加入,沒有什麼技巧,無法測clock var t1,t2,t3:tdatetime; i,j:integer; begin t1:=now; j:=1; for i:=1 to 100 do begin //... end; t2:=now; t3:=(t2-t1)*24.0*60.0*60.0; caption:=format('%.10f',[t3]); end;以前用Trubo C時,Turbo C可以將C轉為ASM,再一個一個Assembly指令去算 Clock,看一種算法快,通常盡量不要用到Mul/Div類的指令,而用Shl/Shr... 但Delphi好像無法轉成Asm ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
蜻蜓草
一般會員 發表:22 回覆:30 積分:10 註冊:2002-03-18 發送簡訊給我 |
|
領航天使
站長 發表:12216 回覆:4186 積分:4084 註冊:2001-07-25 發送簡訊給我 |
站長轉貼會員buliang發表的文章 嗨 Admin You received the following message from : buliang (buliang@ms12.hinet.net) 其實在Windows的系統下,讀取系統花費的時間
最安全的方式應該是透過 API 的方式: var
sTime,eTime:LongInt;//Niro Second
i:integer;
begin
sTime:=timegettime;
for i:=1 to 1000000 do ;
eTime:=timegettime;
Showmessage('起始時間:' inttostr(stime) #13 '完成時間:' inttostr(etime) #13 '花費時間:' inttostr(etime-stime)); end; ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~ |
pcboy
版主 發表:177 回覆:1838 積分:1463 註冊:2004-01-13 發送簡訊給我 |
供參考
[code delphi] var StartTime, EndTime : integer; Begin StartTime:=GetTickCount; // ... EndTime:=GetTickCount; Edit1.Text := floattostr((EndTime-StartTime)/1000.0) ' sec'; end; [/code]
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案! 子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |