Einzelnen Beitrag anzeigen

jbg

Registriert seit: 12. Jun 2002
3.481 Beiträge
 
Delphi 10.1 Berlin Professional
 
#7

Re: prüfen, ob dyn. zur Runtime erzeugte Form Speicher freig

  Alt 26. Feb 2004, 00:50
Zitat von Robert_G:
Vorher waren es 7 MB Speichernutzung, mit 501 Forms etwa 50MB und nach dem Löschen etwa 9MB.
Für den Unterschied gibt es zwei mögliche Erklärungen:
  • Es wurde Code ausgeführt, der Speicher reserviert, der erst wieder beim Beenden (also von TApplication.Destroy) freigegeben wird.
  • Der Delphi-Speichermanager hält freigegebenen Speicher zurück um ihn um Welten schneller an eine Speicherallozierung (GetMem/AllocMem/New/...) zu liefern, als es Windows je könnte. Somit bekommt Windows natürlich nichts von der Freigabe mit und zeigt im Taskmanager einen höheren Verbrauch an, auch wenn der Speicher für das Programm "frei" ist.
    Das ist auch der Grund für den enormen Speicherverlust beim zeichenweise Zusammenstückeln von Strings und dynamischen Arrays in Schleifen.
  Mit Zitat antworten Zitat