std::experimental::pmr:: unsynchronized_pool_resource
From cppreference.net
<
cpp
|
experimental
|
Definiert in Header
<experimental/memory_resource>
|
||
|
class
unsynchronized_pool_resource
:
public
memory_resource
;
|
(Library Fundamentals TS) | |
Die Klasse
std::experimental::pmr::unsynchronized_pool_resource
ist eine allgemeine Speicherressourcen-Klasse mit den folgenden Eigenschaften:
-
Es verwaltet den allokierten Speicher und gibt ihn bei der Zerstörung frei, selbst wenn
deallocatefür einige der allokierten Blöcke nicht aufgerufen wurde. - Es besteht aus einer Sammlung von Pools , die Anfragen für verschiedene Blockgrößen bedienen. Jeder Pool verwaltet eine Sammlung von Chunks , die dann in Blöcke einheitlicher Größe unterteilt werden.
- Aufrufe von do_allocate werden an den Pool weitergeleitet, der die kleinsten Blöcke bereitstellt, die die angeforderte Größe aufnehmen können.
- Das Erschöpfen des Speichers im Pool führt dazu, dass die nächste Allokationsanfrage für diesen Pool einen zusätzlichen Speicher-Chunk vom Upstream-Allokator allokiert, um den Pool wieder aufzufüllen. Die erhaltene Chunk-Größe nimmt geometrisch zu.
- Allokationsanfragen, die die größte Blockgröße überschreiten, werden direkt vom Upstream-Allokator bedient.
- Die größte Blockgröße und die maximale Chunk-Größe können durch Übergabe einer std::experimental::pmr::pool_options -Struktur an ihren Konstruktor angepasst werden.
unsynchronized_pool_resource
ist nicht threadsicher und kann nicht gleichzeitig von mehreren Threads aus zugegriffen werden; verwenden Sie
synchronized_pool_resource
, wenn der Zugriff von mehreren Threads erforderlich ist.
Memberfunktionen
konstruiert eine
unsynchronized_pool_resource
(öffentliche Elementfunktion) |
|
|
[virtual]
|
zerstört eine
unsynchronized_pool_resource
und gibt allen allokierten Speicher frei
(virtuelle öffentliche Elementfunktion) |
|
operator=
[deleted]
|
Kopierzuweisungsoperator ist gelöscht.
unsynchronized_pool_resource
ist nicht kopierzuweisbar
(öffentliche Elementfunktion) |
Öffentliche Elementfunktionen |
|
|
gibt allen allokierten Speicher frei
(öffentliche Elementfunktion) |
|
|
gibt einen Zeiger auf die vorgelagerte Speicherressource zurück
(öffentliche Elementfunktion) |
|
|
gibt die Optionen zurück, die das Pooling-Verhalten dieser Ressource steuern
(öffentliche Elementfunktion) |
|
Geschützte Elementfunktionen |
|
|
[virtual]
|
allokiert Speicher
(virtuelle geschützte Elementfunktion) |
|
[virtual]
|
gibt Speicher an den Pool zurück
(virtuelle geschützte Elementfunktion) |
|
[virtual]
|
vergleicht auf Gleichheit mit einer anderen
memory_resource
(virtuelle geschützte Elementfunktion) |