全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1064
推到 Plurk!
推到 Facebook!

如何寫程式才會最快

尚未結案
yjalex
一般會員


發表:3
回覆:8
積分:2
註冊:2002-11-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-05 15:52:17 IP:203.64.xxx.xxx 未訂閱
是這樣子的 昨天版主回答小弟的問題,宣告動態三維陣列 小弟的陣列大小是固定的 但版主的宣告是不固定的    小弟就在想,固定有固定的寫法,不固定有不固定的舄法 那個效率,速度比較好,就不知道了,這方面能否請各位先進解答一下    小弟的想法是這樣 (背景,小弟的檔案裡面有15張128*128的圖片或30張128*128的)
固定的陣列
vector <...> array//宣告固定陣列,語法不是很對
fread(array...)   //先將15張或30張128*128的圖讀進陣列中
for(i....)        //做For迴圈,將陣列中每一個畫素一點一點的填入Timage內
{
 Image1->Canvas->........;
}    不固定式
int         array_int//先宣告一個128*128的陣列    for(i...)            //做for迴圈,將畫素讀到128*128陣列,再將陣列    {
 fread(array_int....)
 for(j...)           //再做for loop,將陣列的畫素填到TImage內
 {
  Image1->Canvas->.....
 }
}
不知那樣會比較好,為什麼 謝謝回答
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-06 00:46:08 IP:219.136.xxx.xxx 未訂閱
yjalex 您好:    您可以試著在兩種處理程序之前後都加上 GetTickCount() 函數,如:    DWORD StartTime, EndTime; StartTime=GetTickCount(); ... 您的程序碼 .... EndTime=GetTickCount(); AnsiString szStr, spStr; double clock =(EndTime - StartTime); if(clock > 1000.0){ clock = clock / 1000.0; spStr = FloatToStrF(clock, ffNumber, 3, 3) " 秒"; }else{ spStr = FloatToStrF(clock, ffNumber, 3, 0) " 微秒"; } ShowMessage("使用時間:" spStr); 這樣子反覆測試幾次後,應該可以得到一個平均值,以瞭解何種方式的處理速度較快? 另外您也可以在測試兩種處理方式時,啟動視窗系統的 "工作管理員",查看兩種方式個別佔用記憶體的大小。 或許您可以綜合上述兩種方法的測試結果,再依據您的需求來對您的那兩種寫法作個取捨。 參考看看吧~
yjalex
一般會員


發表:3
回覆:8
積分:2
註冊:2002-11-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-10 15:09:11 IP:203.64.xxx.xxx 未訂閱
謝謝回答,學到新的東西
系統時間:2024-05-03 19:11:41
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!