Delphi - Informationen über den Speicher eines Prozesses
uses
PSAPI;
procedure TForm1.Button1Click(Sender: TObject);
var
ProcessId: DWORD;
Process: THandle;
MemInfo: TProcessMemoryCounters;
begin
Process := OpenProcess(PROCESS_QUERY_INFORMATION, False,
GetCurrentProcessID());
if Process <> 0 then
try
if GetProcessMemoryInfo(Process, @MemInfo, SizeOf(MemInfo)) then
with Memo1.Lines do
begin
Add('Anzahl Seitenfehler :' +
IntToStr(MemInfo.PageFaultCount));
Add('Größer Wert des "Arbeitsbereichs" :' +
IntToStr(MemInfo.PeakWorkingSetSize));
Add('Aktuelle Größe "Arbeitsbereich" :' +
IntToStr(MemInfo.WorkingSetSize));
Add('Größerter Wert der Nutzung des ausgelagerten Pools :' +
IntToStr(MemInfo.QuotaPeakPagedPoolUsage));
Add('Aktueller Wert der Nutzung des ausgelagerten Pools :' +
IntToStr(MemInfo.QuotaPagedPoolUsage));
Add('Größerter Wert der Nutzung des nicht ausgelagerten Pools :' +
IntToStr(MemInfo.QuotaPeakNonPagedPoolUsage));
Add('Aktueller Wert der Nutzung des nicht ausgelagerten Pools :' +
IntToStr(MemInfo.QuotaNonPagedPoolUsage));
Add('Nutzung der Auslagerungsdatei :' +
IntToStr(MemInfo.PagefileUsage));
Add('Größerter Wert der Nutzung der Auslagerungsdatei :' +
IntToStr(MemInfo.PeakPagefileUsage));
end;
{ Erklärung
PageFaultCount
Anzahl Seitenfehler.
PeakWorkingSetSize
Größer Wert des "Arbeitsbereichs"
WorkingSetSize
Aktuelle Größe "Arbeitsbereich"
QuotaPeakPagedPoolUsage
Größerter Wert der Nutzung des ausgelagerten Pools
QuotaPagedPoolUsage
Aktueller Wert der Nutzung des ausgelagerten Pools
QuotaPeakNonPagedPoolUsage
Größerter Wert der Nutzung des nicht ausgelagerten Pools
QuotaNonPagedPoolUsage
Aktueller Wert der Nutzung des nicht ausgelagerten Pools
PagefileUsage
Nutzung der Auslagerungsdatei
PeakPagefileUsage
Größerter Wert der Nutzung der Auslagerungsdatei
}
finally
CloseHandle(Process);
end;
end;