std::pmr::unsynchronized_pool_resource
Определено в заголовке <memory_resource> | ||
|---|---|---|
class unsynchronized_pool_resource : public std::pmr::memory_resource; | (с C++17) |
Класс std::pmr::unsynchronized_pool_resource — это универсальный класс ресурса памяти со следующими свойствами:
- Он владеет выделенной памятью и освобождает её при уничтожении, даже если
deallocateне был вызван для некоторых выделенных блоков. - Он состоит из коллекции пулов, которые обслуживают запросы для различных размеров блоков. Каждый пул управляет коллекцией фрагментов, которые затем делятся на блоки одинакового размера.
- Вызовы
do_allocateраспределяются по пулу, обслуживающему наименьшие блоки, вмещающие запрашиваемый размер. - Исчерпание памяти в пуле приводит к тому, что следующий запрос на выделение для этого пула выделяет дополнительный фрагмент памяти из верхнего аллокатора для пополнения пула. Размер фрагмента увеличивается геометрически.
- Запросы на выделение, превышающие максимальный размер блока, обслуживаются напрямую из верхнего аллокатора.
- Максимальный размер блока и максимальный размер фрагмента можно настроить, передав структуру
std::pmr::pool_optionsв его конструктор.
unsynchronized_pool_resource не является потокобезопасным и не может быть обращен к нему из нескольких потоков одновременно; используйте synchronized_pool_resource, если доступ из нескольких потоков необходим.
Члены
создаёт unsynchronized_pool_resource (публичный член-функция) |
|
|
[виртуальный] | уничтожает unsynchronized_pool_resource, освобождая всю выделенную память (виртуальная публичная член-функция) |
| operator=
[удалено] | оператор присваивания по копированию удалён. unsynchronized_pool_resource нельзя присвоить по копированию (публичный член-функция) |
Публичные члены-функции |
|
| освобождает всю выделенную память (публичный член-функция) |
|
| возвращает указатель на ресурс памяти верхнего уровня (публичный член-функция) |
|
| возвращает настройки, которые управляют поведением пула данного ресурса (публичный член-функция) |
|
Защищенные члены-функции |
|
|
[виртуальный] | выделяет память (виртуальная защищенная член-функция) |
|
[виртуальный] | возвращает память в пул (виртуальная защищенная член-функция) |
|
[виртуальный] | сравнивает на равенство с другим std::pmr::memory_resource (виртуальная защищенная член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/memory/unsynchronized_pool_resource