Сравнение производительности распределителя плит - PullRequest
3 голосов
/ 21 июля 2009

Я смотрю на обновление нашего malloc () в ядре нашей операционной системы. В настоящее время мы используем dlmalloc, но я бы хотел решение для домашнего пивоварения, которое мы можем редактировать, не работая с файлом из тысячи строк.

Я решил заглянуть в распределитель плит (Bonwick94) и считаю, что это правильный выбор. Пока я понимаю концепцию и готов ее реализовать. Тем не менее, я хотел бы получить картину сравнения производительности, прежде чем я начну работу.

Предполагая, что слои ниже malloc (vmem, pmem и т. Д.) Оказывают незначительное влияние, как распределитель slab сравнивается, скажем, с dlmalloc, и другими распространенными реализациями malloc (приятель, наилучшее соответствие / первое соответствие) гибриды)

1 Ответ

3 голосов
/ 23 июля 2009

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

Использование иерархии «перераспределителей» с поведением, которое адаптировано к профилям использования в вашей среде, проще, чем кажется - например, использование одной системы выделения для «маленьких» блоков (однако это может быть определено в вашей среде) и другое для «большого» может сильно повлиять на скорость и производительность фрагментации. Мой личный интерес заключается в использовании характеристик «времени жизни» блока в качестве помощи при выборе распределителя.

Но суть в том, что я не верю в единую стратегию распределения; но вы можете значительно улучшить производительность, используя гибрид из 2 или 3 (максимум) субраспределителей; в то же время при таком подходе вы, вероятно, получите тот же размер в 1000 строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...