名稱空間
變體
操作

std::pmr::synchronized_pool_resource

來自 cppreference.com
< cpp‎ | 記憶體
 
 
記憶體管理庫
(僅作說明*)
未初始化記憶體演算法
(C++17)
(C++17)
(C++17)
受約束的未初始化
記憶體演算法
C 庫

分配器
記憶體資源
pmr::synchronized_pool_resource
(C++17)
垃圾回收支援
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
未初始化儲存
(直到 C++20*)
(直到 C++20*)
顯式生命週期管理
 
 
定義於標頭檔案 <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
(public 成員函式) [編輯]
銷燬一個 synchronized_pool_resource,釋放所有已分配的記憶體
(virtual public 成員函式) [編輯]
operator=
[已刪除]
複製賦值運算子被刪除。synchronized_pool_resource 不可複製賦值
(public 成員函式) [編輯]
公開成員函式
釋放所有已分配的記憶體
(public 成員函式) [編輯]
返回上游記憶體資源的指標
(public 成員函式) [編輯]
返回控制此資源池化行為的選項
(public 成員函式) [編輯]
受保護的成員函式
[virtual]
分配記憶體
(virtual protected 成員函式) [編輯]
將記憶體返回給池
(virtual protected 成員函式) [編輯]
[virtual]
與另一個 memory_resource 進行相等比較
(virtual protected 成員函式) [編輯]