Einzelnen Beitrag anzeigen

angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#1

Speicherauslastung der eigenen Anwendung ermitteln

  Alt 27. Jan 2011, 14:15
Hallo zusammen,

ich versuche momentan die SPeicherauslastung meiner Anwendung zu ermitteln, um diese zu bestimmten Zeiten zu loggen. Ich habe schon mehrere Threads (z.B. dieser hier) zu diesem Thema gesehen und komme mit der dort angesprochenen Lösung nicht ganz zurecht.

Delphi-Quellcode:
function GetWorkingSetSize : integer;
var
  pmc: PPROCESS_MEMORY_COUNTERS;
  cb: Integer;
begin
  cb := SizeOf(_PROCESS_MEMORY_COUNTERS);
  GetMem(pmc, cb);
  pmc^.cb := cb;
  if(GetProcessMemoryInfo(GetCurrentProcess, pmc, cb))then
    result := pmc^.WorkingSetSize div 1024;
  else
    result := -1;
  FreeMem(pmc);
end;
Mit GetCurrentProcess sollte doch eigentlich das Handle der Anwendung zurückgeliefert werden, oder?
Bei mir stimmt die von dieser Funktion zurückgelieferte Speicherauslastung nicht mit der im Taskmanager überein.
Mache ich dort noch etwas falsch?
Die Rückgabe entspricht doch in der angegebenen Funktion dem Wert in kb?!


Danke für jede Hilfe

Gruß
Ansgar
  Mit Zitat antworten Zitat