Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.287 Beiträge
Delphi 12 Athens
|
AW: Speicherbenutzung nach wochenlanger Benutzung
20. Jun 2012, 15: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.
Ein Therapeut entspricht 1024 Gigapeut.
Geändert von himitsu (20. Jun 2012 um 15:53 Uhr)
|