Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Klasse Freigeben, speicher bleibt aber in Benutzung (https://www.delphipraxis.net/154662-klasse-freigeben-speicher-bleibt-aber-benutzung.html)

youuu 20. Sep 2010 12:50

Klasse Freigeben, speicher bleibt aber in Benutzung
 
Hi,

Ich erstelle eine Klasse beim öffnen eines Formulars
Delphi-Quellcode:
    Form2 := TFormKunde.Create(nil);
    Data := TDaten.Create;
    Form2.Show;
Und im Form2 bei Beendigung gebe ich sie wieder frei mit

Delphi-Quellcode:
Data.Free;
Allerdings bleibt der Speicher weiterhin besetzt und assigned gibt mir zurück das diese Klasse noch existiert

mkinzler 20. Sep 2010 12:51

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);

youuu 20. Sep 2010 12:54

AW: Klasse Freigeben, speicher bleibt aber in Benutzung
 
Danke

Luckie 20. Sep 2010 15:06

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?

youuu 20. Sep 2010 16:15

AW: Klasse Freigeben, speicher bleibt aber in Benutzung
 
Im Taskmanager --> Prozess angeschaut.

himitsu 20. Sep 2010 18:49

AW: Klasse Freigeben, speicher bleibt aber in Benutzung
 
Zitat:

Zitat von youuu (Beitrag 1050808)
Im Taskmanager --> Prozess angeschaut.

Wie gesagt, der Speichermanager reserviert ganze Bereiche bei Windoes und gibt diese Stückchenweise ans Delphiprogramm ab.

Erst wenn soein Bereich wieder programmseitig komplett freigegeben ist, wird dieser an Windows zurückgegeben.

youuu 20. Sep 2010 18:52

AW: Klasse Freigeben, speicher bleibt aber in Benutzung
 
Kann man ihn auch anderst komplett freigeben, ohne das Programm beenden zu müssen?

himitsu 20. Sep 2010 19:01

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 00:03 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz