Files |  Tutorials |  Articles |  Links |  Home |  Team |  Forum |  Wiki |  Impressum

Aktuelle Zeit: Fr Jul 18, 2025 08:46

Foren-Übersicht » Programmierung » Allgemein
Unbeantwortete Themen | Aktive Themen



Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Speicher von Komponenten freigeben.
BeitragVerfasst: So Mär 28, 2004 00:09 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
Mir ist gerade aufgefallen das der RAM von irgendwelchen Komponenten nicht wieder richtig freigegeben wird. Ich hab jetzt einfach mal zur Laufzeit ein TMemo erstellt und wieder freigegen. Der RAM verbraucht stieg beim erstellen des Memos um ein paar kb an. Als ich es dann aber mit TMemo.Free (und/oder TMemo.Destroy) freigegeben habe wurde der verbrauchet Speicher nicht wieder freigegeben. Beim wiederhohltem erstellen wurde jedoch nicht nochmal neuer Speicher benötigt.
Ist das nur ein Anzeigefehler im Task Manager?
Oder muß ich noch irgendetwas anderes außer TMemo.Free aufrufen?


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: So Mär 28, 2004 00:13 
Offline
DGL Member
Benutzeravatar

Registriert: Sa Dez 28, 2002 11:13
Beiträge: 2244
Der Speicher wird von Delphi intern auch noch mal verwaltet und wieder verwendet weil die Windows Funktionen zum Belegen von Speicher langsam sind. Wenn man die für jede String Zuweisung oder Ähnliches aufrufen müßte würde das das Programm verlangsamen.
Komponenten die man in ein Formular eingefügt hat werden automatisch beim Freigeben der Form mit gelöscht.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 17:28 
Offline
DGL Member
Benutzeravatar

Registriert: Di Jun 24, 2003 19:09
Beiträge: 732
Kann ich aber irgendwie Formulare komplett freigeben. Also so das der gesammte RAM permanent wieder freigeben wird. Wenn ich z.B. ein Formulare aus .dll Dateien importiere dann frißt da jedes Formular gleich mal ~300 kb im RAM. Bei vielen Formularen die damit geladen werden kommt da ne ganze Menge zusammen. Da die Formulare aber nicht dauerhaft geladen werden wäre es nicht schlecht wenn ich sie irgendwie komplett freigeben könnte so das auch der benötigte RAM wieder frei wird.
Wenn ich Form.Destroy oder Form.Free benutze ändert sich am RAM verbrauch der Anwendung überhaupt nichts.


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags:
BeitragVerfasst: Di Mär 30, 2004 17:57 
Offline
DGL Member
Benutzeravatar

Registriert: Mi Jan 07, 2004 23:14
Beiträge: 42
wenn du mehrere Forms hast, kannst du angeben (Project --> Options) welche zu Programmsstart direkt erstellt werden. Beim aufrufen musst du sie dann erstellen.
Code:
  1. Dialog := TForm.Create;
  2. Dialog.showmodal;
  3. Dialog.free;


Dann müsste der Speicher eigentlich freigegeben werden.[/code]


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Foren-Übersicht » Programmierung » Allgemein


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
  Powered by phpBB® Forum Software © phpBB Group
Deutsche Übersetzung durch phpBB.de
[ Time : 0.007s | 14 Queries | GZIP : On ]