Espacios de nombres
Variantes
Acciones

std::pmr::synchronized_pool_resource

De cppreference.com
< cpp‎ | memory
 
 
Gestión de memoria dinámica
Punteros inteligentes
(C++11)
(C++11)
(C++11)
(hasta C++17)
(C++11)
(C++23)
Asignadores de memoria
Recursos de memoria
pmr::synchronized_pool_resource
(C++17)
Almacenamiento no inicializado
Algoritmos de memoria no inicializada
Algoritmos restringidos de memoria no inicializada
Apoyo para recolección de basura
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
(C++11)(hasta C++23)
Misceláneos
(C++20)
(C++11)
(C++11)
 
 
Definido en el archivo de encabezado <memory_resource>
class synchronized_pool_resource : public std::pmr::memory_resource;
(desde C++17)

La clase std::pmr::synchronized_pool_resource es una clase de recurso de memoria de propósito general con las siguientes propiedades:

  • Posee la memoria asignada y la libera en caso de destrucción, incluso si deallocate no se ha llamado para algunos de los bloques asignados.
  • Consiste en una colección de reservas que atienden solicitudes para diferentes tamaños de bloque. Cada reserva gestiona una colección de 'trozos' que luego se dividen en bloques de tamaño uniforme.
  • Las llamadas a do_allocate se despachan a la reserva que atiende los bloques más pequeños acomodando el tamaño solicitado.
  • El agotamiento de la memoria en la reserva hace que la siguiente solicitud de asignación para esa reserva asigne una porción adicional de memoria del asignador río arriba para reponer la reserva. El tamaño del trozo obtenido aumenta geométricamente.
  • Las solicitudes de asignación que excedan el tamaño de bloque más grande se atienden directamente desde el asignador río arriba.
  • El tamaño de bloque más grande y el tamaño máximo de trozo se pueden ajustar pasando una estructura std::pmr::pool_options a su constructor.

Se puede acceder a synchronized_pool_resource desde múltiples hilos sin sincronización externa, y puede tener reservas específicas para hilos para reducir los costos de sincronización. Si solo se accede al recurso de memoria desde un hilo, unsynchronized_pool_resource es más eficiente.

[editar] Funciones miembro

Construye un objeto synchronized_pool_resource.
(función miembro pública) [editar]
[virtual]
Destruye un objeto synchronized_pool_resource, liberando toda la memoria asignada.
(función miembro virtual pública) [editar]
operator=
[eliminada]
El operador de asignación de copia está eliminado. synchronized_pool_resource no es asignable por copia.
(función miembro pública) [editar]
Funciones miembro públicas
Libera toda la memoria asignada.
(función miembro pública) [editar]
Devuelve un puntero al recurso de memoria río arriba.
(función miembro pública) [editar]
Devuelve las opciones que controlan el comportamiento de reserva de este recurso.
(función miembro pública) [editar]
Funciones miembro protegidas
[virtual]
Asigna memoria.
(función miembro virtual protegida) [editar]
Devuelve memoria a la reserva.
(función miembro virtual protegida) [editar]
[virtual]
Se compara por igualdad con otro memory_resource.
(función miembro virtual protegida) [editar]