std::experimental::pmr:: synchronized_pool_resource
From cppreference.net
<
cpp
|
experimental
|
class
synchronized_pool_resource
:
public
memory_resource
;
|
(库基础技术规范) | |
类
std::experimental::pmr::synchronized_pool_resource
是一种通用内存资源类,具有以下特性:
-
它拥有已分配的内存并在析构时释放这些内存,即使某些已分配的块尚未调用
deallocate。 - 它由一组服务于不同块大小请求的 内存池 构成。每个池管理一组 内存块 ,这些内存块随后被划分为统一大小的区块。
- 对 do_allocate 的调用会被分派至能容纳请求大小的最小块对应的内存池。
- 当池中内存耗尽时,该池的下一次分配请求会从 上游分配器 分配额外的内存块以补充池。所获内存块的大小呈几何级数增长。
- 超过最大块大小的分配请求将直接由 上游分配器 处理。
- 可通过向构造函数传递 std::experimental::pmr::pool_options 结构体来调整最大块大小和最大内存块尺寸。
synchronized_pool_resource
可在无需外部同步的情况下从多个线程访问,并可能具有线程特定的池以减少同步开销。如果内存资源仅从单个线程访问,
unsynchronized_pool_resource
则更为高效。
成员函数
构造一个
synchronized_pool_resource
(公开成员函数) |
|
|
[virtual]
|
销毁
synchronized_pool_resource
,释放所有已分配内存
(虚函数公开成员函数) |
|
operator=
[deleted]
|
复制赋值运算符被删除。
synchronized_pool_resource
不可复制赋值
(公开成员函数) |
公开成员函数 |
|
|
释放所有已分配内存
(公开成员函数) |
|
|
返回指向上游内存资源的指针
(公开成员函数) |
|
|
返回控制此资源池化行为的选项
(公开成员函数) |
|
受保护成员函数 |
|
|
[virtual]
|
分配内存
(虚函数受保护成员函数) |
|
[virtual]
|
将内存归还给内存池
(虚函数受保护成员函数) |
|
[virtual]
|
与另一个
memory_resource
进行相等性比较
(虚函数受保护成员函数) |