std::pmr::synchronized_pool_resource

從 cppreference.com
< cpp‎ | memory
 
 
內存管理庫
(僅用於闡述*)
分配器
未初始化內存算法
受約束的未初始化內存算法
內存資源
pmr::synchronized_pool_resource
(C++17)

未初始化存儲 (C++20 前)
(C++17 棄用)
(C++17 棄用)

垃圾收集器支持 (C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
(C++11)(C++23 前)
 
 
在標頭 <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 比較相等性
(虛受保護成員函數) [編輯]