Forum: Win32/Win64 API (native code)
Delphi
by Jaynder,
16. Feb 2010
Auch da mache dir nicht so viele Gedanken. Denn erstens vergrößert sich TList beim Add "intelligent" mit der Methode Grow
procedure TList.Grow;
var
Delta: Integer;
begin
if FCapacity > 64 then
Delta := FCapacity div 4
else
if FCapacity > 8 then
Delta := 16
Forum: Win32/Win64 API (native code)
Delphi
by Jaynder,
16. Feb 2010
@himitsu
das stimmt so nicht. Genau die Fragmentierung wird absolut verhindert, weil nicht mehr byte-genaue Blöcke reserviert werden, sondern nur noch feste "gerade" Blöcke (z.b. 32er, 64er, 96er) usw und die jeweils in einer eigenen Liste verwaltet werden. Das durch den Verschnitt generell Lücken entstehen und so der Speicher nicht zu 100% ausgenutzt wird, kann man bei heutigen...
Forum: Win32/Win64 API (native code)
Delphi
by Jaynder,
16. Feb 2010
Ich würde mich an deiner Stelle um die Heap-Verwaltung gar nicht mehr kümmern, FastMM erledigt das perfekt. Wenn du FastMM.pas zusätzlich explizit verwendest, bekommst du auch noch Meldungen über Speicherlecks usw.