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?
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.
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.
wenn du mehrere Forms hast, kannst du angeben (Project --> Options) welche zu Programmsstart direkt erstellt werden. Beim aufrufen musst du sie dann erstellen.
Code:
Dialog := TForm.Create;
Dialog.showmodal;
Dialog.free;
Dann müsste der Speicher eigentlich freigegeben werden.[/code]
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.