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ß