Здравствуйте, Went, Вы писали:
W>Здравствуйте, MNZ, Вы писали:
MNZ>>Здравствуйте, Went, Вы писали:
W>>>Что посоветуете? Меня бы устроил простейший (даже однопоточный, так даже лучше) хидер-онли аллокатор, написаный без сложных платформенных вывертов, заточенный под хранение и частое удаление / создание мелких объектов равного размера, исключающий при этом постоянное непосредственно обращение к операциям кучи. Грубо говоря, "выделяю чанк на 1024 объекта указанного размера, и, если места не хватит, выделяю новый". Все.
MNZ>>Если на проекте используется C++17, то можно попробовать взять стандартные std::pmr::unsynchronized_pool_resource и std::pmr::polymorphic_allocator: https://en.cppreference.com/w/cpp/header/memory_resource.
W>Увы, пока что ограничен С++11. И, по-моему, указанный аллокатор (точнее, ресурс памяти) заточен под блоки разной длины, то есть будет априори неоптимален для моей задачи. Или я неверно прочитал?
Да вроде всё верно. Только про оптимальность лучше не судить умозрительно, а сделать конкретные замеры. Я сам этим аллокатором не пользовался — только бустовским, — и по сравнению с new он быстрее раз в пять.