Namespaces
Variants

std::experimental::pmr:: synchronized_pool_resource

From cppreference.net
ヘッダーで定義 <experimental/memory_resource>
class synchronized_pool_resource : public memory_resource ;
(ライブラリファンダメンタルTS)

クラス std::experimental::pmr::synchronized_pool_resource は、以下の特性を持つ汎用メモリリソースクラスです:

  • 確保されたメモリを所有し、一部の確保ブロックに対して deallocate が呼び出されていない場合でも、破棄時にメモリを解放します。
  • 異なるブロックサイズの要求を処理する プール の集合で構成されています。各プールは均一なサイズのブロックに分割された チャンク の集合を管理します。
  • do_allocate への呼び出しは、要求サイズを収容できる最小ブロックを提供するプールに振り分けられます。
  • プール内のメモリが枯渇すると、そのプールへの次の割り当て要求により、 上流アロケータ から追加チャンクを取得してプールを補充します。取得されるチャンクサイズは幾何級数的に増加します。
  • 最大ブロックサイズを超える割り当て要求は、 上流アロケータ から直接処理されます。
  • 最大ブロックサイズと最大チャンクサイズは、コンストラクタに std::experimental::pmr::pool_options 構造体を渡すことで調整可能です。

synchronized_pool_resource は外部同期なしに複数のスレッドからアクセス可能であり、同期コストを削減するためにスレッド固有のプールを持つ場合があります。メモリリソースが単一のスレッドからのみアクセスされる場合は、 unsynchronized_pool_resource の方が効率的です。

メンバー関数

synchronized_pool_resource を構築する
(公開メンバ関数)
[virtual]
synchronized_pool_resource を破棄し、割り当てられたすべてのメモリを解放する
(仮想公開メンバ関数)
operator=
[deleted]
コピー代入演算子は削除済み。 synchronized_pool_resource はコピー代入不可
(公開メンバ関数)
公開メンバ関数
割り当てられたすべてのメモリを解放する
(公開メンバ関数)
上流メモリリソースへのポインタを返す
(公開メンバ関数)
このリソースのプーリング動作を制御するオプションを返す
(公開メンバ関数)
保護メンバ関数
[virtual]
メモリを割り当てる
(仮想保護メンバ関数)
[virtual]
メモリをプールに返す
(仮想保護メンバ関数)
[virtual]
他の memory_resource との等値比較を行う
(仮想保護メンバ関数)