AGB  ·  Datenschutz  ·  Impressum  







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

Problem mit 2. Formular

Ein Thema von gfjs · begonnen am 23. Jan 2006 · letzter Beitrag vom 25. Jan 2006
 
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#13

Re: Problem mit 2. Formular

  Alt 24. Jan 2006, 17:14
Zitat:
Mit euren Aussagen zum selber aufräumen des Speichers habe ich aber so meine Probleme.
Das Problem bei Fenstern ist, dass es kein richtiges Selberaufräumen gibt.
Es wird weiterhin ein Win32 Fenster angelegt, weiterhin wird mit Handles und Messages umhergeworfen (Glücklicherweise wird man selbst nur selten damit belästigt...).
Der Unterschied im Aufräumen bei Show <-> ShowDialog liegt in der Verwendung der beiden Methoden.
Bei Show ist es meist vollkommen legitim das Fenster beim Schließen zu zerstören. Bei ShowDialog braucht man aber meistens den Dialog nach dem Anzeigen um die Benutzereingaben auszuwerten.
Deshalb muss ein Dialog explizit freigegeben werden, indem man sich an IDisposable hält.

Preisfrage: Hast du ein MemLeak wenn du Dispose nach einem Dialog vergisst?
Nein, wie die meisten Klassen, die IDisposable implementieren, besitzt Form einen Finalizer, der ausgeführt wird wenn die GC das Form aufräumt. Der kann dann den ganzen Müll aufräumen...
Da Finalizer aber einen GC sweep _extrem_ ausbremsen sollte man immer Dispose aufrufen, statt es an den Finalizer abzutreten.
Fast alle .Net SPrachen bringen ein using statement mit (wie oben in meinem Chrome Schnipsel).
Dieses sorgt in einer Zeile dafür, dass eine Variable deklariert, besetzt und aufgeräumt wird.
Zitat:
Kann man das irgendwie prüfen? Ok eventuell mit dem Profiler (aber wie? -> genaue Erklärung bitte)
Schaue mal hier vorbei.
Vorsicht: FF-Fans sollten "http://msdn.microsoft.com/msdntv/" im Filter der liebenswerten IE Tab Extension haben um nicht auch noch dieses Mistvieh direkt starten zu müssen.
Zitat:
Wenn ich nämlich mal den Taskmanager im Auge behalte während ich mein Fenster mit Show öffne, dann verbraucht meine Anwendung mehr Speicher (jedesmal wenn ich das zweite Fenster öffne).
Wenn ich es schliesse geht der Speicher aber nicht zurück.
TaskMan taugt eigentlich rein gar nix um etwas über den Speicherverbrauch auszusagen...
Genauer sind die Performance counter, die du unter Admin Tools (bzw Verwaltung im dtsch Windows) findest. Dort gibt dir "private Bytes" (unter Process) die wirkliche reservierte Speichergröße. Also minus das was durch geteilte Bibliotheken, wie die CLR, beansprucht wird.
Robert Giesecke
  Mit Zitat antworten Zitat
 


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 05:11 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