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;

 

2012-01-26T23:14:46 +0100, mail[at]michael[Bindestrich]puff.de