Я полагаю, что распределитель слябов был, по крайней мере, частью вдохновения для dlmalloc, и базовый план считается наилучшей общей комбинацией компромиссов для системы распределителей общего назначения. Универсальные распределители «один размер подходит всем» - не каламбур - на уровне абстракции «наилучшего соответствия», «следующего соответствия» и т. Д., Как правило, не сокращают его; один алгоритм слишком ограничен. Таким образом, комбинация, скажем, наиболее подходящая, используемая вместе с распределителем плит, будет работать гораздо более удовлетворительно.
Использование иерархии «перераспределителей» с поведением, которое адаптировано к профилям использования в вашей среде, проще, чем кажется - например, использование одной системы выделения для «маленьких» блоков (однако это может быть определено в вашей среде) и другое для «большого» может сильно повлиять на скорость и производительность фрагментации. Мой личный интерес заключается в использовании характеристик «времени жизни» блока в качестве помощи при выборе распределителя.
Но суть в том, что я не верю в единую стратегию распределения; но вы можете значительно улучшить производительность, используя гибрид из 2 или 3 (максимум) субраспределителей; в то же время при таком подходе вы, вероятно, получите тот же размер в 1000 строк.