8.4.2. Увеличение кучи

На верх  Назад  Вперёд

Куча получает память от операционной системы по мере необходимости.Память ОС запрашивается в блоках: сначала выполняется попытка получить кусок в 64 КБ, если выделяемый размер меньше 64 КБ, или 256 КБ или 1024 КБ иначе. Если эта попытка не удаётся, то выполняется попытка увеличить кучу на столько, сколько памяти вы запросили из кучи.

Если попытка зарезервировать память у ОС не удалась, то возвращаемое значение зависит от значения глобальной переменной ReturnNilIfGrowHeapFails. Значения этой переменной приведены в таблице 8.9.

Таблица 8.9. Значения ReturnNilIfGrowHeapFails

Значение ReturnNilGrowHeapFails

Действие по умолчанию менеджера памяти

FALSE (по умолчанию)

Генерируется ошибка времени выполнения 203

TRUE

GetMem, ReallocMem и New возвращают nil

ReturnNilIfGrowHeapFails может быть установлена для изменения поведения по умолчанию обработчика ошибок менеджера памяти.