class
std::pmr::monotonic_buffer_resource(C++17)
namespace std::pmr {
class monotonic_buffer_resource;
}
概要
monotonic_buffer_resource
はオブジェクトの破棄時にのみ管理しているメモリを全て解放する特殊な memory_resource
実装である。
小さなオブジェクトを多数構築するために割り当てを行い、最後にまとめて解放するといった状況において高速なメモリ割り当てを行うことを目的としている。
このクラスはスレッドセーフではない。
monotonic_buffer_resource
の性質
deallocate
(do_deallocate
)は何も行わない、そのためオブジェクトの破棄までメモリ使用量は単調増加する。
- 外部で確保された領域を初期メモリ領域として設定可能
- 上流メモリリソースを指定可能
- 初期メモリが無いか使い果たされると、上流メモリリソースから補充する。
- 補充されるメモリ領域サイズは以前の領域サイズよりも大きくなり、そのサイズは等比数列に従って(補充の度に)増加する。
- 単一スレッドからアクセスされることを前提としており、
allocate
とdeallocate
は互いに非同期である。
- 管理メモリの解放時は
deallocate
が呼び出されていない領域があっても全てのメモリを解放する。
メンバ関数
構築・破棄
名前 |
説明 |
対応バージョン |
(constructor) |
コンストラクタ |
C++17 |
(destructor) |
デストラクタ |
C++17 |
operator=(const monotonic_buffer_resource&) = delete; |
コピー代入演算子(コピー禁止) |
C++17 |
メンバ関数
非仮想インターフェース(NVI)
protected オーバーライド関数(memory_resource
実装)
非メンバ関数
バージョン
言語
処理系
関連項目
参照