std::pmr::synchronized_pool_resource
從 cppreference.com
在標頭 <memory_resource> 定義
|
||
class synchronized_pool_resource : public std::pmr::memory_resource; |
(C++17 起) | |
類 std::pmr::synchronized_pool_resource
是一種具有下列屬性的通用內存資源類:
- 它擁有被分配內存並在析構時釋放它,即使對於某些被分配塊未調用
deallocate
也是如此。 - 它由供應不同塊大小請求的池的彙集組成。每個池管理之後被分入一致大小的區段的彙集。
- 對 do_allocate 的調用被派發到供應適應請求大小的最小塊的池。
- 池中耗盡內存時,會導致該池從上游分配器分配額外的內存區段,以填滿池。獲取的區段大小以幾何級數增加。
- 超出最大的塊大小的分配請求,由上游分配器直接供應。
- 最大的塊大小和區段大小的最大值可通過向其構造函數傳遞 std::pmr::pool_options 結構體予以調節。
synchronized_pool_resource
可以從多個線程不經同步地訪問,並可擁有線程指定的池以減少同步成本。若內存資源只從單個線程訪問,則 unsynchronized_pool_resource 更有效率。
[編輯] 成員函數
構造 synchronized_pool_resource (公開成員函數) | |
[虛] |
銷毀 synchronized_pool_resource ,釋放所有已分配內存 (虛公開成員函數) |
operator= [棄置] |
複製賦值運算符被棄置。synchronized_pool_resource 不可複製賦值 (公開成員函數) |
公開成員函數 | |
釋放所有分配的內存 (公開成員函數) | |
返回指向上游內存資源的指針 (公開成員函數) | |
返回控制此資源分池行為的選項 (公開成員函數) | |
受保護成員函數 | |
[虛] |
分配內存 (虛受保護成員函數) |
返還內存到池 (虛受保護成員函數) | |
[虛] |
與另一 memory_resource 比較相等性 (虛受保護成員函數) |