名前空間
変種
操作

std::experimental::pmr::synchronized_pool_resource

From cppreference.com
 
 
 
 
 
ヘッダー <experimental/memory_resource> で定義
class synchronized_pool_resource : public memory_resource;
(Library Fundamentals TS)

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

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

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

[編集] メンバー関数

synchronized_pool_resource を構築します。
(public member function) [編集]
synchronized_pool_resource を破棄し、割り当てられたすべてのメモリを解放します。
(virtual public member function) [編集]
operator=
[削除]
コピー代入演算子は削除されています。synchronized_pool_resource はコピー代入可能ではありません。
(public member function) [編集]
公開メンバ関数
確保されたすべてのメモリを解放します。
(public member function) [編集]
アップストリームメモリリソースへのポインタを返します。
(public member function) [編集]
このリソースのプーリング動作を制御するオプションを返します。
(public member function) [編集]
Protected member functions
[virtual]
メモリを割り当てる
(virtual protected member function) [編集]
メモリをプールに返します。
(virtual protected member function) [編集]
[virtual]
別のmemory_resourceとの等価性を比較する
(virtual protected member function) [編集]
English 日本語 中文(简体) 中文(繁體)