如何寫程式才會最快 |
尚未結案
|
yjalex
一般會員 發表:3 回覆:8 積分:2 註冊:2002-11-04 發送簡訊給我 |
是這樣子的
昨天版主回答小弟的問題,宣告動態三維陣列
小弟的陣列大小是固定的
但版主的宣告是不固定的 小弟就在想,固定有固定的寫法,不固定有不固定的舄法
那個效率,速度比較好,就不知道了,這方面能否請各位先進解答一下 小弟的想法是這樣
(背景,小弟的檔案裡面有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 發送簡訊給我 |
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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |