Einzelnen Beitrag anzeigen

Benutzerbild von Daniel Schuhmann
Daniel Schuhmann

Registriert seit: 16. Jul 2005
Ort: München
391 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Alternative zu Application.Minimize für RAM-Freigabe

  Alt 26. Nov 2005, 10:53
Zitat von Nogge:
Nach meinen bisherigen Studien bin ich nicht der Meinung Daniels. Windows gibt wirklich den in der Spalte "Mem Usage" angegebenen Speicher teilweise frei, da sich der virtuelle Speicher während des Minimierens (und somit während des Freigebens von Speicher) nicht erhöht.
Lad Dir mal den erwähnten Process-Explorer herunter und schau da den Speicherbedarf an.


Ich habe über einen Zeitraum von knapp zwei Minuten Notepad ständig minimiert und wiederhergestellt. Im Performance Graph lässt sich das aber nicht feststellen - der reservierte Speicher bleibt immer der selbe:

http://www.smartcoder.net/de/images/...es_history.gif
Anzeige der Private Bytes im Performance Graph


Der Speicherbedarf von Notepad direkt nach dem Start. Die Private Bytes liegen bereits bei 852 KB, das Working Set (der Wert, den der Taskmanager anzeigt), liegt bei 2,3 MB, da hier sämtliche DLLs-Funktionen (Änderung der Schriftgröße, Suchen/Ersetzen usw.) geladen wurden.

http://www.smartcoder.net/de/images/...ad_started.gif
Speicherbedarf von Notepad nach dem Start


Notepad wurde minimiert. Die Private Bytes liegen noch immer bei 852 KB. Das Working Set ist nun allerdings auf 232 KB reduziert, weil der von Windows als nicht notwendig erachtete Krempel ausgelagert wird. Der Peak-Wert steht natürlich noch auf dem Maximalwert von 2,3 MB.

http://www.smartcoder.net/de/images/..._minimized.gif
Notepad wurde minimiert


Das Fenster von Notepad ist nun wiederhergestellt. Das Working Set liegt bei 436 KB - Windows erkennt, daß der Speicher zum refreshen des Edit-Fensters nötig ist. Werden einige Zeichen getippt, erhöht sich das Working Set nochmals um etwa 100 KB. Der Wert der Private Bytes liegt noch immer bei 852 KB.

http://www.smartcoder.net/de/images/...d_restored.gif
Programmfenster ist Wiederhergestellt


Es werden ein paar Dialoge geöffnet und wieder geschlossen. Das Working Set steigt abermals und erstmalig erhöht sich auch der direkt in Private Bytes genutzte Speicher, wovon aber der meiste beim Schließen der Dialoge freigegeben wird. Den Maximalwert kann man noch an der Größe der Peak Private Bytes erkennen.

http://www.smartcoder.net/de/images/...ad_dialogs.gif
Dialoge wurden geöffnet und wieder geschlossen

Daniel
Daniel Schuhmann
  Mit Zitat antworten Zitat