docs: Fix memory module documentation discrepancies

- Add missing PoolAllocator class overview with methods table
- Add missing LinearAllocator class overview with methods table
- Add missing ProxyAllocator class overview with methods table
- Fix PoolAllocator::Allocate example code and comments
- Clarify ProxyAllocator::Free totalFreed calculation behavior
- Fix CreateLinearAllocator complexity from O(size) to O(1)
- Add note about Reallocate thread safety in ProxyAllocator
This commit is contained in:
2026-03-19 00:48:44 +08:00
parent 5fc18eac6f
commit 98c764bab9
8 changed files with 142 additions and 14 deletions

View File

@@ -4,7 +4,9 @@
void Free(void* ptr) override;
```
释放内存并记录统计。调用转发到底层分配器,同时更新统计信息:递增 `totalFreed`(累加当前分配计数),并递减 `allocationCount`。由于 ProxyAllocator 不记录单独释放的字节数,`totalFreed` 累加的是 `allocationCount` 而非实际字节大小
释放内存并记录统计。调用转发到底层分配器,同时更新统计信息:递增 `totalFreed`(累加当前 `allocationCount`),并递减 `allocationCount`
**注意:** `totalFreed` 累加的是每次释放时的 `allocationCount`(分配计数)而非实际字节大小。这是一个简化的实现,用于追踪释放操作次数。
**参数:**
- `ptr` - 指向要释放的内存块

View File

@@ -1,4 +1,38 @@
# ProxyAllocator::ProxyAllocator
# ProxyAllocator
**命名空间**: `XCEngine::Memory`
**类型**: `class`
**描述**: 代理分配器,用于统计和跟踪底层分配器的分配情况。
## 概述
`ProxyAllocator` 包装一个底层分配器,转发所有分配请求,同时记录详细的统计信息。它线程安全(使用互斥锁保护统计数据),适合需要监控内存使用的场景。
## 公共方法
### 生命周期
| 方法 | 描述 |
|------|------|
| `ProxyAllocator` | 构造代理分配器 |
### 内存操作
| 方法 | 描述 |
|------|------|
| `Allocate` | 分配内存并记录统计 |
| `Free` | 释放内存并记录统计 |
| `Reallocate` | 转发到底层分配器 |
### 统计查询
| 方法 | 描述 |
|------|------|
| `GetStats` | 获取详细统计信息 |
## 构造函数
```cpp
ProxyAllocator(IAllocator* underlying, const char* name);
@@ -33,4 +67,6 @@ proxy.Free(ptr);
## 相关文档
- [ProxyAllocator 总览](proxy-allocator.md) - 返回总览
- [Memory 模块总览](../memory.md) - 返回模块总览
- [IAllocator](../allocator/allocator.md) - 分配器接口
- [MemoryManager](../manager/manager.md) - 内存管理器

View File

@@ -4,7 +4,7 @@
void* Reallocate(void* ptr, size_t newSize) override;
```
重新分配内存。调用直接转发到底层分配器,不记录任何统计信息(简化实现)。此方法仅将调用转发给底层分配器。
重新分配内存。调用转发到底层分配器,不记录额外统计信息(底层分配器的返回值直接返回)。此方法线程安全,内部使用互斥锁保护
**参数:**
- `ptr` - 现有内存块指针