Список освобождения

Список освобождения - это структура данных, используемая в схеме для динамического выделения памяти. Он работает путем соединения неразмеченных областей памяти вместе в связанный список, используя первое слово каждой неразмеченной области в качестве указателя на следующий участок. Этот подход является наиболее удобным для выделения из пула памяти, где все объекты имеют одинаковый размер.

Списки освобождения делают операции выделение и освобождения памяти очень простыми. Чтобы освободить регион, нужно просто связать его в список освобождения. Чтобы выделить область можно было бы просто удалить одну область с конца списка освобождения и использовать его. Если области переменного размера, возможно, придется искать в регион с достаточно большим размером, что может быть затратно по ресурсам.

Списки освобождения имеют недостаток, унаследованный от связанных списков, плохого локальности ссылок и плохое кэширование данных, и они автоматически не объединяются с соседними регионами для выделения крупных областей для данных, в отличие от Дружественной системы выделения памяти. Тем не менее, они все еще полезны в различных простых приложениях, где полномасштабный выделитель памяти ненужен, или вызывает слишком много накладных расходов.

Источник: Википедия

а б в г д е ё ж з и й к л м н о п р с т у ф х ц ч ш щ э ю я