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:
@@ -4,7 +4,9 @@
|
||||
void Free(void* ptr) override;
|
||||
```
|
||||
|
||||
释放内存并记录统计。调用转发到底层分配器,同时更新统计信息:递增 `totalFreed`(累加当前分配计数),并递减 `allocationCount`。由于 ProxyAllocator 不记录单独释放的字节数,`totalFreed` 累加的是 `allocationCount` 而非实际字节大小。
|
||||
释放内存并记录统计。调用转发到底层分配器,同时更新统计信息:递增 `totalFreed`(累加当前 `allocationCount`),并递减 `allocationCount`。
|
||||
|
||||
**注意:** `totalFreed` 累加的是每次释放时的 `allocationCount`(分配计数)而非实际字节大小。这是一个简化的实现,用于追踪释放操作次数。
|
||||
|
||||
**参数:**
|
||||
- `ptr` - 指向要释放的内存块
|
||||
|
||||
@@ -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) - 内存管理器
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
void* Reallocate(void* ptr, size_t newSize) override;
|
||||
```
|
||||
|
||||
重新分配内存。调用直接转发到底层分配器,不记录任何统计信息(简化实现)。此方法仅将调用转发给底层分配器。
|
||||
重新分配内存。调用转发到底层分配器,不记录额外统计信息(底层分配器的返回值直接返回)。此方法线程安全,内部使用互斥锁保护。
|
||||
|
||||
**参数:**
|
||||
- `ptr` - 现有内存块指针
|
||||
|
||||
Reference in New Issue
Block a user