Einzelnen Beitrag anzeigen

Mr.borland

Registriert seit: 16. Mai 2007
Ort: Plüderhausen
34 Beiträge
 
#1

TList problem Arbeitsspeicher wächst ununterbrochen

  Alt 29. Jan 2008, 11:52
hey leute, muss euch schon wieder mit einem problem auf die pelle rücken.

ich habe eine Tlist den ich zurlauf zeit immer wieder befühle und auch leere; alles funktioniert wunderbar jedoch wächst mein durch das programm belegter speicher rasant ins unermäßliche.

also ich habe dann ein test routine eingebaut und es liegt daran das Tlist, sei es durch den aufruf von clear oder Delete oder Remove den speicher nicht wieder freigibt.

Tlist löscht anscheinend nur die internen verweise ;-( sorry "habe eigentlich keine ahnung was gemacht wird" ich vermute nur.

Ich habe in meiner verzweifelung mal folgendes probiert:

1. TContainer ist von Tlist abgeleitet: das programm läuft stabil. aber der speicher wird nie freigegeben obwohl TList.count = 0 ist.

Delphi-Quellcode:
{ Clear the list by deleting all objects in it. }
procedure TContainer.ClearList;
var i:integer;
begin
    for I := (Count-1) downto 0 do begin
       Delete(i);
    end;
end;
2. TContainer ist von Tlist abgeleitet: das programm störzt unregelmäßig bei clear ab. aber der speicher wird wunderbar freigegeben.

Delphi-Quellcode:
{ Clear the list by deleting all objects in it. }
procedure TContainer.ClearList;
var i:integer;
begin
    for I := (Count-1) downto 0 do begin
       TObject(Items[I]).Free;
    end;
    inherited Clear;
end;

aber keines der lösungen ist wirklich befriedigend. ich bin dankbar für jede anmerkung, danke. Ich habe es auch mit TObjectList und TThreadList probiert, es ist immer das selbe problem.

danke für eure hilfe.
  Mit Zitat antworten Zitat