std::experimental::pmr::synchronized_pool_resource
來自 cppreference.com
定義於標頭檔案 <experimental/memory_resource> |
||
類 synchronized_pool_resource : 公共 memory_resource; |
(庫基礎 TS) | |
std::experimental::pmr::synchronized_pool_resource
類是一個通用記憶體資源類,具有以下屬性:
- 它擁有已分配的記憶體,並在銷燬時釋放它,即使某些已分配的塊尚未呼叫
deallocate
。 - 它由一組**池**組成,用於處理不同塊大小的請求。每個池管理一組**塊**,這些塊隨後被劃分為大小一致的記憶體塊。
- 對 do_allocate 的呼叫會被分派到服務於能夠容納請求大小的最小塊的池。
- 池中記憶體耗盡會導致對該池的下一個分配請求從“上游分配器”分配一個額外的記憶體塊來補充池。獲得的塊大小呈幾何級數增長。
- 超出最大塊大小的分配請求直接由“上游分配器”處理。
- 最大的塊大小和最大塊大小可以透過將 std::experimental::pmr::pool_options 結構體傳遞給其建構函式進行調整。
synchronized_pool_resource
可以從多個執行緒訪問而無需外部同步,並且可以擁有執行緒特定的池以減少同步開銷。如果記憶體資源僅從一個執行緒訪問,則 unsynchronized_pool_resource 更高效。
[編輯] 成員函式
構造一個 synchronized_pool_resource (公共成員函式) | |
[虛擬函式] |
銷燬 synchronized_pool_resource ,釋放所有已分配的記憶體(虛公共成員函式) |
operator= [已刪除] |
複製賦值運算子已刪除。synchronized_pool_resource 不可複製賦值(公共成員函式) |
公開成員函式 | |
釋放所有已分配的記憶體 (公共成員函式) | |
返回上游記憶體資源的指標 (公共成員函式) | |
返回控制此資源池化行為的選項 (公共成員函式) | |
受保護的成員函式 | |
[虛擬函式] |
分配記憶體 (虛保護成員函式) |
[虛擬函式] |
將記憶體返回到池中 (虛保護成員函式) |
[虛擬函式] |
與另一個 memory_resource 進行相等比較(虛保護成員函式) |