![]() |
Klasse Freigeben, speicher bleibt aber in Benutzung
Hi,
Ich erstelle eine Klasse beim öffnen eines Formulars
Delphi-Quellcode:
Und im Form2 bei Beendigung gebe ich sie wieder frei mit
Form2 := TFormKunde.Create(nil);
Data := TDaten.Create; Form2.Show;
Delphi-Quellcode:
Allerdings bleibt der Speicher weiterhin besetzt und assigned gibt mir zurück das diese Klasse noch existiert
Data.Free;
|
AW: Klasse Freigeben, speicher bleibt aber in Benutzung
Es wird ja nur den Speicher freigegeben. Willst du die Referenz(Zeiger) zurücksetzen nimm
Delphi-Quellcode:
FreeAndNil( data);
|
AW: Klasse Freigeben, speicher bleibt aber in Benutzung
Danke
|
AW: Klasse Freigeben, speicher bleibt aber in Benutzung
Und was den Speicher angeht, den gibt der Delphi Speichermansger nicht sofort wieder an Windows zurück, um sich beim nächsten mal, das Anfordern zu ersparen. Btw. wie hast du den Speicherverbrauch eigentlich ermittelt?
|
AW: Klasse Freigeben, speicher bleibt aber in Benutzung
Im Taskmanager --> Prozess angeschaut.
|
AW: Klasse Freigeben, speicher bleibt aber in Benutzung
Zitat:
Erst wenn soein Bereich wieder programmseitig komplett freigegeben ist, wird dieser an Windows zurückgegeben. |
AW: Klasse Freigeben, speicher bleibt aber in Benutzung
Kann man ihn auch anderst komplett freigeben, ohne das Programm beenden zu müssen?
|
AW: Klasse Freigeben, speicher bleibt aber in Benutzung
Nein, aber wozu will sollte man sowas überhaupt machen wollen?
Es ist ja gerade absichstlich so, daß Delphi dieses nicht immer sofort freigibt. Du könntest z.B. einen anderen Speichermanager verwenden. Und wenn es um "wichtige" Daten geht, dann überschreib das Freigeben des Objektes und überschreib, kurz vor Freigabe des Objekts, den Objektspeicher. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 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