В системе есть объекты только двух размеров 64 и 128 байтов.
Нужен быстрейший менеджер памяти для динамической аллокации/деаллокации таких объектов, но память надо использовать экономно. Понятно, что быстрее всех будет всегда аллоцировать по 128 байтов, но тогда будет оверхед по расходу памяти в случае когда нужны лишь 64 байтные объекты.
Традиционный алгоритм объединяющий блоки вроде медленный (или нет?).
Существует ли эффективное решение для этого частного случая?
Пока в голову лезет идея размещать объекты размером 128 с одной стороны имеющегося куска памяти, а размера 64 с другой стороны.
При деаллокации "крайние" блоки можно возвращать обратно в "общую сырую память". А "некрайние" блоки ставить в список неиспользуемых (связный список организовать разумеется на самих же неиспользуемых блоках).
Правда экперименты на случайных данных показали, что возврат блоков в общую сырую память происходит крайне неохотно.
Какие ещё есть мысли?