std::experimental::pmr:: synchronized_pool_resource
From cppreference.net
<
cpp
|
experimental
|
Definido en el encabezado
<experimental/memory_resource>
|
||
|
class
synchronized_pool_resource
:
public
memory_resource
;
|
(library fundamentals TS) | |
La clase
std::experimental::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 la destrucción, incluso si
deallocateno ha sido llamado para algunos de los bloques asignados. - Consiste en una colección de pools que atienden solicitudes para diferentes tamaños de bloque. Cada pool gestiona una colección de chunks que luego se dividen en bloques de tamaño uniforme.
- Las llamadas a do_allocate se dirigen al pool que sirve los bloques más pequeños que pueden acomodar el tamaño solicitado.
- Agotar la memoria en el pool hace que la siguiente solicitud de asignación para ese pool asigne un chunk adicional de memoria del upstream allocator para reabastecer el pool. El tamaño del chunk obtenido aumenta geométricamente.
- Las solicitudes de asignación que exceden el tamaño de bloque más grande se atienden directamente desde el upstream allocator .
- El tamaño de bloque más grande y el tamaño máximo de chunk pueden ajustarse pasando una estructura std::experimental::pmr::pool_options a su constructor.
synchronized_pool_resource
puede ser accedido desde múltiples hilos sin sincronización externa, y puede tener grupos específicos por hilo para reducir los costos de sincronización. Si el recurso de memoria solo es accedido desde un hilo,
unsynchronized_pool_resource
es más eficiente.
Funciones miembro
construye un
synchronized_pool_resource
(función miembro pública) |
|
|
[virtual]
|
destruye un
synchronized_pool_resource
, liberando toda la memoria asignada
(función miembro pública virtual) |
|
operator=
[deleted]
|
el operador de asignación de copia está eliminado.
synchronized_pool_resource
no es asignable por copia
(función miembro pública) |
Funciones miembro públicas |
|
|
libera toda la memoria asignada
(función miembro pública) |
|
|
devuelve un puntero al recurso de memoria ascendente
(función miembro pública) |
|
|
devuelve las opciones que controlan el comportamiento de agrupamiento de este recurso
(función miembro pública) |
|
Funciones miembro protegidas |
|
|
[virtual]
|
asigna memoria
(función miembro protegida virtual) |
|
[virtual]
|
devuelve memoria al grupo
(función miembro protegida virtual) |
|
[virtual]
|
compara para igualdad con otro
memory_resource
(función miembro protegida virtual) |