Насколько я понимаю, и boost, и pmr имеют распределитель "bump" , который подходит для многих небольших распределений, когда вы удаляете их все сразу в конце (это на самом деле не беспокоит освобождение, когда вызывается delete, а allo c - это простое приращение указателя, поэтому оно очень быстрое).
Что мне интересно, если есть распределитель, который действительно удосуживается запомнить свободные блоки, но он оптимизирован для точного размера распределений.
что-то вроде
block_allocator<4096>// only use this allocator to allocate 4096 bytes, anything smaller or larger will fail.
Другими словами, ему не нужно работать с несколькими size-классами , но он способен обрабатывать 1 миллиард новых / удаляет, если Вы делаете новый новый новый (пример 3 раза), затем удаляете удаляете удаляете, потому что он повторно использует освобожденные блоки (при условии, что у него есть место для выделения 3 блоков).
примечание: я знаю, что некоторые std :: Containers делают не просто выделить T и что этот распределитель не подходит для этого. Я просто хочу использовать это для создания многих unique_ptr<T, alloc<sizeof<T>>
(T ctor не выделяет).
Также было бы неплохо, если бы он мог быть настроен на политику, чтобы использовать глобальное новое или предварительно выделенное хранилище или гибрид первых двух вариантов.