我用Delphi XE8來測驗SetLength()和GetMem()程式。
測驗代碼SetLength():
procedure TForm1.SpeedButton1Click(Sender: TObject);
var
a: array of Byte;
begin
SetLength(a,100*1024*1024); //100Mb
ShowMessage('See Task Manager');
SetLength(a,0);
end;
任務管理器顯示的記憶體使用Project1.exe量約為 100Mb。

測驗代碼GetMem():
procedure TForm1.SpeedButton2Click(Sender: TObject);
var
p: PByte;
begin
GetMem(p,100*1024*1024); //100Mb
ShowMessage('See Task Manager');
FreeMem(p);
end;
任務管理器顯示的記憶體使用Project1.exe量約為 2Mb。

任務管理器在使用SetLength(). 我的問題:SetLength()優于GetMem()?
這是我的測驗:

后

SetLength顯示類似的數字。也就是說,就 Delphi 而言,記憶體使用情況應該是一樣的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/522339.html
標籤:德尔福
