Jak odczytać stan pamięci operacyjnej

Szczawik

Wszelkie informacje o stanie pamięci w systemie zwraca funkcja GlobalMemoryStatus(Status:TMemoryStatus);. Informuje ona o dostępnej oraz całkowitej ilości pamięci fizycznej, stronicowania oraz wirtualnej. Poniższa procedura wypełnia tymi informacjami komponent TListView, podawany jako parametr:

procedure StatusPamieci(ListView:TListView);

  //Dodanie wpisu do ListView
  procedure DodajWpis(const Klucz, Wartosc:string);
  begin
  with ListView.Items.Add do
    begin
    Caption:=Klucz;
    SubItems.Add(Wartosc);
    end;
  end;

var Status: TMemoryStatus;
begin
ListView.Items.BeginUpdate;

//Ustawienie stanu ListView
ListView.Clear;
ListView.ViewStyle:=vsReport;
ListView.Columns.BeginUpdate;
ListView.Columns.Clear;
with ListView.Columns.Add do
  begin
  Caption:='Rodzaj';
  Width:=150;
  end;
with ListView.Columns.Add do
  begin
  Caption:='Ilość';
  Width:=150;
  end;
ListView.Columns.EndUpdate;

//Pobranie informacji
ZeroMemory(@Status, sizeof(Status));
Status.dwLength:=sizeof(Status);
GlobalMemoryStatus(Status);

//Prezentacja informacji
DodajWpis('Użycie pamięci [%]', IntToStr(Status.dwMemoryLoad));
DodajWpis('Całkowita fizyczna [B]', IntToStr(Status.dwTotalPhys));
DodajWpis('Dostępna fizyczna [B]', IntToStr(Status.dwAvailPhys));
DodajWpis('Całkowita stronicowania [B]', IntToStr(Status.dwTotalPageFile));
DodajWpis('Dostępna stronicowania [B]', IntToStr(Status.dwAvailPageFile));
DodajWpis('Całkowita wirtualna [B]', IntToStr(Status.dwTotalVirtual));
DodajWpis('Dostępna wirtualna [B]', IntToStr(Status.dwAvailVirtual));

ListView.Items.EndUpdate;
end;

1 komentarz