線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1171
推到 Plurk!
推到 Facebook!

記憶體使用量為什麼會一直上升呢?

尚未結案
mnsf
初階會員


發表:104
回覆:90
積分:48
註冊:2003-11-25

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-25 10:35:14 IP:61.231.xxx.xxx 未訂閱
各位大大好,我寫了一段測試程式如下: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type Trec = record s0:string; s1:string; s2:string; s3:string; s4:string; s5:string; s6:string; s7:string; s8:string; s9:string; end; TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; ary:array of Trec; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; begin button1.Enabled:=false; for i:=5000 to 10000 do begin setlength(ary,i); for j:=0 to i-1 do begin ary[j].s0:='0000'; ary[j].s1:='1111'; ary[j].s2:='2222'; ary[j].s3:='3333'; ary[j].s4:='4444'; ary[j].s5:='5555'; ary[j].s6:='6666'; ary[j].s7:='7777'; ary[j].s8:='8888'; ary[j].s9:='9999'; end; end; button1.Enabled:=true; showmessage('ok'); end; end. 在按下Button1後,我開啟工作管理員的效能頁面,查看記憶體使用的情況, 結果記憶體不斷的上升,請問有什麼方法可以讓記憶體不會一直上升嗎?
Chance36
版主


發表:31
回覆:1033
積分:792
註冊:2002-12-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-25 15:11:43 IP:203.204.xxx.xxx 未訂閱
mnsf 你好
  記憶會一直上升,主要是如下程式碼中的SetLength(ary,i);(紅色字)一直
的擴充記憶體需求,如果可以一次就配置足够的記憶體,再跑迴圈時不會記憶體
一直上升了(綠色字)。    procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
begin
  button1.Enabled:=false;
  setlength(ary,10000); // 已知最大記憶體需求
  for i:=5000 to 10000 do
  begin
    //setlength(ary,i); // 
    for j:=0 to i-1 do
    begin
      ary[j].s0:='0000';
      ary[j].s1:='1111';
      ary[j].s2:='2222';
      ary[j].s3:='3333';
      ary[j].s4:='4444';
      ary[j].s5:='5555';
      ary[j].s6:='6666';
      ary[j].s7:='7777';
      ary[j].s8:='8888';
      ary[j].s9:='9999';
    end;
  end;
  button1.Enabled:=true;
  showmessage('ok');
end;
end.
系統時間:2024-06-02 14:58:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!