std::experimental::pmr::synchronized_pool_resource
来自 cppreference.cn
< cpp | experimental
class synchronized_pool_resource : public 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 比较是否相等(虚保护成员函数) |