Spec-Zone.ru › C++

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 нельзя присвоить по копированию
(публичный член-функция)
Публичные члены-функции
release
освобождает всю выделенную память
(публичный член-функция)
upstream_resource
возвращает указатель на ресурс памяти верхнего уровня
(публичный член-функция)
options
возвращает настройки, которые управляют поведением пула данного ресурса
(публичный член-функция)
Защищенные члены-функции
do_allocate
[виртуальный]
выделяет память
(виртуальная защищенная член-функция)
do_deallocate
[виртуальный]
возвращает память в пул
(виртуальная защищенная член-функция)
do_is_equal
[виртуальный]
сравнивает на равенство с другим 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API