AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherverwaltung und .Free

Ein Thema von skyphab · begonnen am 16. Jun 2004 · letzter Beitrag vom 20. Jul 2004
Antwort Antwort
skyphab

Registriert seit: 16. Apr 2004
17 Beiträge
 
Delphi 7 Enterprise
 
#1

Re: Speicherverwaltung und .Free

  Alt 17. Jun 2004, 08:47
Das mit dem GetHeapStatus ist super, danke!

Damit habe ich jetzt herausgefunden, dass das Freigeben der obersten Objektliste funktioniert.
Wenn in der Objektliste aber ein Objekt angelegt wird, dass wiederum eine Objektliste erzeugt, wird beim clear der 'obersten' Objektliste aber der Speicher der untersten Objektliste nicht freigegeben.

Zur Verdeutlichung (Ich habe den unwichtigen Teil des Codes rausgeschnippelt):

Klasse TAuftraege
Code:
procedure TAuftraege.Auftrag_Hinzufuegen(I_Auftrag: RAuftrag);
begin
  Objektliste.Add(TAuftrag.Create(I_Auftrag));
end;
Klasse TAuftrag
Code:
constructor TAuftrag.Create(I_Auftrag: RAuftrag);
begin
  Auftrag := I_Auftrag;
end;
Bei (In TAuftraege):

Code:
Objektliste.Clear;
und anschließendem neu Anlegen der Objekte, ändert sich der laut GetHeapStatus der zugewiesene Speicher nicht.

Allerdings so (Änderung bei TAuftrag.Create):

Klasse TAuftraege
Code:
procedure TAuftraege.Auftrag_Hinzufuegen(I_Auftrag: RAuftrag);
begin
  Objektliste.Add(TAuftrag.Create(I_Auftrag));
end;
Klasse TAuftrag
Code:
constructor TAuftrag.Create(I_Auftrag: RAuftrag);
begin
  RollenListe := TObjectList.Create(true);
  Auftrag := I_Auftrag;
end;
wird beim Objektliste.Clear und anschließendem Neuanlegen immer mehr Speicher belegt (~100Byte). Also wird wohl die Objektliste 'Rollenliste' nicht korrekt freigegeben. Ich muss nicht mal ein Objekt in diese Liste stellen.

Muss ich in diesem Fall Rollenliste irgendwo freisetzen? Ich habe in destructor TAuftrag.free Rollenliste.Free reingemacht, aber gebracht hat es nichts?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz