Модуль: System, ShareMem
type THeapStatus = record
TotalAddrSpace: Cardinal;
TotalUncommitted: Cardinal;
TotalCommitted: Cardinal;
TotalAllocated: Cardinal;
TotalFree: Cardinal;
FreeSmall: Cardinal;
FreeBig: Cardinal;
Unused: Cardinal;
Overhead: Cardinal;
HeapErrorCode: Cardinal;
end;
Описание
Функция возвращает текущее состояние диспетчера памяти. Модуль System подключается для получения информации о глобальной куче, а модуль ShareMem, когда память используется несколькими различными процессами.
Назначение полей записи THeapStatus:
Поле | Описание |
TotalAddrSpace | Суммарное адресное пространство (в байтах), доступное текущей Паскаль-программе. |
TotalUncommitted | Суммарное количество байт из адресного пространства TotalAddrSpace, под которые не было выделено место в файле подкачки (swap file). |
TotalCommitted | Суммарное количество байт из адресного пространства TotalAddrSpace, для которых было выделено место в файле подкачки TotalCommitted:=TotalAddrSpace-TotalUncommitted |
TotalAllocated | Суммарное адресное пространство в байтах, выделенное динамически под текущую программу. |
TotalFree | Свободное адресное пространство в байтах, которое может быть выделено дополнительно для текущей программы. |
FreeSmall | Суммарное количество байт в свободных малых блоках памяти. |
FreeBig | Суммарный объем больших блоков памяти, которые не были выделены под текущую программу. Большие блоки могут быть созданы объединением малых блоков, идущих подряд или динамическим освобождением большего объема памяти. |
Unused | Суммарное количество байт, которое никогда ранее не было выделено для текущей программы (Unused + FreeBig + FreeSmall = TotalFree). |
Overhead | Объем памяти в байтах, необходимый диспетчеру памяти для работы со всеми блоками памяти, которые были динамически выделены текущей программе. |
HeapErrorCode | Текущее состояние кучи. |
Значения полей TotalAddrSpace, TotalUncommitted и TotalCommitted относятся к адресному пространству памяти операционной системы, используемого программой. Значения TotalAllocated и TotalFree относятся к памяти кучи, динамически распределяемой для использования программой. Т.е. информацию о динамической памяти, используемой в вашей программе, можно получить из значений полей TotalAllocated и TotalFree.