AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Speicherbenutzung nach wochenlanger Benutzung
Thema durchsuchen
Ansicht
Themen-Optionen

Speicherbenutzung nach wochenlanger Benutzung

Ein Thema von Alex_ITA01 · begonnen am 12. Jun 2012 · letzter Beitrag vom 20. Jun 2012
Antwort Antwort
Seite 2 von 2     12   
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#11

AW: Speicherbenutzung nach wochenlanger Benutzung

  Alt 20. Jun 2012, 13:47
Hallo Himitsu,
anbei mal ein Ausschnitt des Strings, welcher mir nach Aufruf von Execute zurückgeliefert wird:

CPU: 0 % ( 0) Memory: 542 MB ( 542- 542) MemoryLoad: 67 % (67-67) DelphiMM: 96 MB (res 15 MB) FreeRAM: 1310 MB (1309-1312) PageFile: 3138 MB (3128-3147) Handles: 15995 (15995-15995)

Da steht bei Memory: 542 MB
Laut TaskManager verbraucht das Programm aber nur 157 MB.
Hast du eine Idee?

MemoryLoad: Ist das die Größe der Anwendung im Gesamtspeicher oder auf was bezieht sich die %-Zahl?

Gruß
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.159 Beiträge
 
Delphi 12 Athens
 
#12

AW: Speicherbenutzung nach wochenlanger Benutzung

  Alt 20. Jun 2012, 14:12
"Memory" gibt den komplett belegten Speicherbereich an, innerhalb des virtuellen Speichers deiner Anwendung,
also inklusive MMFs und anderer verlinkter Speicherblöcke, wie z.B. die Codes der EXE und DLLs. Dazu dann auch noch reservierte Speicherblöcke und Blockanteile, wo aber nichts drin ist, welche aber dennoch nicht zur allgemeinen Nutzung verfügbar sind.

Dein Taskmanager zeigt nur den RAM, welchen es mit dem RAM oder der PageFile verlinkt hat. (nichts Reserviertes und keine MMFs, welche mit Speicher anderer Anwendungen oder mit einer Datei verunden sind)

Jupp, MemoryLoad ist aufr den gesamten Arbietsspeicher des System bezogen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (20. Jun 2012 um 14:15 Uhr)
  Mit Zitat antworten Zitat
Alex_ITA01

Registriert seit: 22. Sep 2003
1.115 Beiträge
 
Delphi 12 Athens
 
#13

AW: Speicherbenutzung nach wochenlanger Benutzung

  Alt 20. Jun 2012, 14:40
Also um das nochmal irgendwie zusammen zu bekommen...

Die Anwendung macht ja nach einigen Wochen schlapp, weil ich wie in Post 1 geschrieben habe, an die 1,5 GB Speicher ran komme.
Das was in "Memory" von deinem String steht ist nicht der Speicher von meiner Anwendung sondern von allen Anwendungen oder?
Woher sonst der Unterschied zwischen 157MB Taskmanager (WorkingSetSize liegt das gleiche) und 542MB?!
Ich werde in den String noch den tatsächlichen Speicherverbrauch der Anwendung aufnehmen...

Sagt mal, wenn ich jetzt feststelle das nach ca. einer Woche der Speicher angestiegen ist (z.B. auf 1GB), gibt es dann Möglichkeiten herauszubekommen, welches Formular, welcher Thread oder welche Klasse wieviel Speicher wegnimmt? Damit ich irgendwie dahinterkommen kann wer sich diesen Speicher nimmt.
Nur zur Info: Die Anwendung hat ca. 200 Threads und an die 60 Formulare (welche teilweise dynamisch als auch statisch erzeugt werden). Deswegen würde ich natürlich gerne wissen, wer der Übeltäter ist...

Gruß
Let's fetz sprach der Frosch und sprang in den Mixer
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.159 Beiträge
 
Delphi 12 Athens
 
#14

AW: Speicherbenutzung nach wochenlanger Benutzung

  Alt 20. Jun 2012, 14:47
Nee, Memory ist nur der virtuelle/private Speicher deiner Anwendung.

MemoryLoad, FreeRAM und PageFile ist von allen Anwendungen, bzw. vom ganzen System.

direkt festlegen kann man das so nicht direkt.
FastMM kann man irgendwie in einen FullDebugModus versetzen ... ich bin mir nicht sicher, aber ich glaub da merkt der sich wer (Zeit, Code-Adresse und eventuell Thread) jeden Speicherblock reserviert hat.

Man könnte nun ein Snapshot vom Speicher machen (sich eine Liste aller Blöcke merken) und diesen dann vergleichen.

Und über FastMM bekommst du auch nur Speicher, welcher darüber reserviert wurde.
VirtuallAlloc müßte man z.B. hooken, um das auch noch mitzubekommen.

Schlimm sind solche falschen Speicherlecks.
z.B. könntest du über einen Timer TStringGrid.Create(Self) aufrufen, was stückchenweise speicher verschlingt, aber beim Beenden des Programms gibt der Owner (die Form) dieses "Speicherlecks" frei und FastMM bekommt davon garnicht mit, daß es "eigentlich" Speicherlecks waren.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (20. Jun 2012 um 14:53 Uhr)
  Mit Zitat antworten Zitat
sahimba

Registriert seit: 14. Nov 2011
Ort: Berlin, Hauptstadt der DDR
137 Beiträge
 
Delphi 10 Seattle Professional
 
#15

AW: Speicherbenutzung nach wochenlanger Benutzung

  Alt 20. Jun 2012, 15:01
Zitat:
Schlimm sind solche falschen Speicherlecks.
Wo wir dann wieder bei http://www.delphipraxis.net/1171749-post7.html wären
Snapshots sind dort auch bereits (rudimentär) integriert. Weiter gibt es eine "Statistik" in welcher angezeigt wird, von welcher Klasse wie viele Objekte bisher erzeugt worden sind, wie viele derzeit noch "leben" etc. Der Callstack der Erzeugung kann angezeigt werden, und das ganze eben live. Das Ganze funktioniert auch für mehrere Threads.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.159 Beiträge
 
Delphi 12 Athens
 
#16

AW: Speicherbenutzung nach wochenlanger Benutzung

  Alt 20. Jun 2012, 15:39
Snapshots sind dort auch bereits (rudimentär) integriert. ...
Auch in der Emba-Version, oder nur im "richtigen" FastMM?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
sahimba

Registriert seit: 14. Nov 2011
Ort: Berlin, Hauptstadt der DDR
137 Beiträge
 
Delphi 10 Seattle Professional
 
#17

AW: Speicherbenutzung nach wochenlanger Benutzung

  Alt 20. Jun 2012, 16:50
Snapshots sind dort auch bereits (rudimentär) integriert. ...
Auch in der Emba-Version, oder nur im "richtigen" FastMM?
Ich sprach von meinem eigenen Tool: http://ddobjects.de/ddserver
Wie gesagt... die Version auf der Webseite ist vollkommen veraltet, ich habe aber eine ganz frische bei mir die ich dann irgendwann auch auf die freie Wildbahn herauslassen werde.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 12:21 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz