Получение информации о памяти

© 2006 Андрей Садовой

Для получения детальной информации о состоянии памяти компьютера можно воспользоваться функцией API GlobalMemoryStatus. В функцию передается переменная типа TMemoryStatus, которая представляет собой запись, тип которой определен следующим образом:

type
  TMemoryStatus = record
    dwLength: DWORD;
    dwMemoryLoad: DWORD;
    dwTotalPhys: DWORD;
    dwAvailPhys: DWORD;
    dwTotalPageFile: DWORD;
    dwAvailPageFile: DWORD;
    dwTotalVirtual: DWORD;
    dwAvailVirtual: DWORD;
  end;

Первое поле записи, dwLength, описывает длину записи TMemoryStatus. Поле необходимо инициализировать функцией SizeOf до обращения к функции GlobalMemoryStatus.

Второе поле, dwMemoryLoad, содержит количество использованной памяти в процентах.

Третье поле, dwTotalPhys, содержит число байт установленной на компьютере ОЗУ (физической памяти).

Поле dwAvailPhys – свободная физическая память в байтах.

Следующие два поля – dwTotalPageFile и dwAvailPageFile – показывают общий объем, который могут сохранить файлы/файл подкачки (вообще говоря, не совпадает с размером последних) и еще доступный объем из этой величины. Все в байтах.

Последние два поля относятся к виртуальной памяти. Поле dwTotalVirtual – общее число байтов виртуальной памяти, используемой в вызывающем процессе. Поле AvailVirtual – объем этой памяти, еще доступной для вызывающего процесса.

Приведу один пример использования функции GlobalMemoryStatus. На Дельфи можно реализовать следующий код получения информации о наличной памяти ОЗУ:

function GetRAM: Cardinal;
var
  MS: TMemoryStatus;
begin
  MS.dwLength:=SizeOf(MS);
  GlobalMemoryStatus(MS);
  Result:=MS.dwTotalPhys;
end;

Функция GetRAM возвращает общее число байт физической памяти, установленной на компьютере. Эту информацию она читает из поля dwTotalPhys записи MS, имеющей тип TMemoryStatus. Перед этим вызывается API-функция GlobalMemoryStatus с параметром MS. Обратите внимание, что перед вызовом GlobalMemoryStatus инициализируется поле dwLength функцией SizeOf.

По аналогии с примером можно получить информацию об остальных параметрах памяти. Думаю, у читателей это не вызовет затруднения. Реализацию функций на Дельфи для получения информации о памяти можно найти в моем модуле SysInfo v.3.00. Там же содержатся функции получения и другой системной информации.

Copyright© 2006 Андрей Садовой  Специально для Delphi Plus


Пожалуйста, оцените статью

Отлично
Хорошо
Средне
Плохо
Очень плохо

2011123456789101112
2010123456789101112
2009123456789101112
2008123456789101112
2007123456789101112
2006123456789101112
2005123456789101112
2004123456789101112
2003123456789101112
2002123456789101112
2001123456789101112
2000123456789101112
1999123456789101112

Последние статьи
Литература