docs: rebuild Memory API content

This commit is contained in:
2026-03-26 18:02:29 +08:00
parent ce2eee32e3
commit dc252502ac
66 changed files with 1182 additions and 1066 deletions

View File

@@ -1,31 +1,45 @@
# PoolAllocator::PoolAllocator()
# PoolAllocator::Constructor
构造对象
构造一个固定块池分配器
```cpp
PoolAllocator(size_t blockSize, size_t poolSize, size_t alignment = 8);
```
该方法声明于 `XCEngine/Memory/PoolAllocator.h`,当前页面用于固定 `PoolAllocator` 类目录下的方法级 canonical 路径。
## 行为说明
**参数:**
- `blockSize` - 参数语义详见头文件声明。
- `poolSize` - 参数语义详见头文件声明。
- `alignment` - 参数语义详见头文件声明。
构造函数会一次性完成两件事:
**返回:** `void` - 无返回值
1. 计算每个 block 的实际步长 `actualBlockSize`
2. 申请一整块池内存,并把它串成单向空闲链表。
**示例:**
`alignment > 0` 时,当前实现使用下面的位运算向上取整:
```cpp
#include <XCEngine/Memory/PoolAllocator.h>
void Example() {
XCEngine::Memory::PoolAllocator object;
}
(blockSize + alignment - 1) & ~(alignment - 1)
```
随后它会调用 `std::malloc(actualBlockSize * poolSize)`,并在这块连续内存上建立空闲链表。
## 参数
- `blockSize` - 逻辑 block 大小,也是 [Allocate](Allocate.md) 允许的最大请求大小。
- `poolSize` - block 数量。
- `alignment` - block 步长对齐粒度;默认值为 `8`
## 返回值
- 无。
## 当前实现限制
- 当前没有验证 `alignment` 是否是 2 的幂。
- 当前没有防御 `blockSize == 0``poolSize == 0` 或底层分配失败。
-`poolSize == 0``malloc` 失败时,后续空闲链表初始化可能进入未定义行为,因此调用方应保证参数有效。
- 对齐只影响 block 步长,不保证 `malloc` 返回的池起始地址本身满足同样的高阶对齐要求。
## 相关文档
- [返回类总览](PoolAllocator.md)
- [返回模块目录](../Memory.md)
- [返回类总览](PoolAllocator.md)
- [Destructor](Destructor.md)
- [GetBlockSize](GetBlockSize.md)