Быстрейший менеджер памяти для двухтиповой системы
От: Сергей Губанов Россия http://sergey-gubanov.livejournal.com/
Дата: 17.09.14 10:36
Оценка: 1 (1)
В системе есть объекты только двух размеров 64 и 128 байтов.

Нужен быстрейший менеджер памяти для динамической аллокации/деаллокации таких объектов, но память надо использовать экономно. Понятно, что быстрее всех будет всегда аллоцировать по 128 байтов, но тогда будет оверхед по расходу памяти в случае когда нужны лишь 64 байтные объекты.

Традиционный алгоритм объединяющий блоки вроде медленный (или нет?).

Существует ли эффективное решение для этого частного случая?

Пока в голову лезет идея размещать объекты размером 128 с одной стороны имеющегося куска памяти, а размера 64 с другой стороны.



При деаллокации "крайние" блоки можно возвращать обратно в "общую сырую память". А "некрайние" блоки ставить в список неиспользуемых (связный список организовать разумеется на самих же неиспользуемых блоках).

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

Какие ещё есть мысли?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.