Я читал в поваренной книге по оптимизации C++, что стандартный распределитель для контейнеров STL, такой как std :: list, std :: set, std :: multi_set, std :: map , e std :: multi_map может быть заменен более производительным блочным распределителем .std :: map стандартная производительность распределителя по сравнению с блочным распределителем
Блок-распределитель имеет более высокую производительность, низкую фрагментацию и эффективное кэширование данных.
Я нашел в Интернете FSBAllocator, который утверждает, что он быстрее, чем стандарт. http://warp.povusers.org/FSBAllocator/
Я пробовал с станд :: картой и обнаружил, что, кажется, быстрее, на самом деле, но мой вопрос, как может быть реализация STL настолько медленнее, чем конкретный распределитель и каков недостатки другого распределителя чем стандарт, с точки зрения мобильности и надежности? Мой код должен компилироваться на различных архитектурах (win32, osx, linux). У кого-то есть опыт работы с этим блоком распределения фиксированного размера?
Я предполагаю, что распределитель STL является как можно более общим и эффективным для большинства случаев. Я бы не использовал другой тип распределителя, если в моем коде нет реальной проблемы с производительностью. – Max
Блок-распределитель блоков звучит как тот, который не может выделять произвольные размеры с минимальными накладными расходами в качестве стандарта. –