docs: 修正 API 文档准确性 (第二轮检查)
修复的问题: - math: 修复 Quaternion::Normalize 链接错误 - containers: HashMap 迭代器示例使用不存在的 cbegin/cend,删除冗余构造函数声明 - core: RefCounted 析构函数访问级别修正 (protected) - debug: LogLevelToString 示例返回值大小写修正 - memory: 修正 LinearAllocator::Reallocate 返回 nullptr,ProxyAllocator 统计描述,头文件路径 IAllocator.h -> Allocator.h - resources: Texture::Create mipLevels 参数描述修正 - rhi: 修复多处链接错误,新增缺失的方法文档 - threading: TaskSystem 配置项未实现状态标注,Wait 方法空实现标注
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
void Free(void* ptr) override;
|
||||
```
|
||||
|
||||
释放内存并记录统计。调用转发到底层分配器,同时更新统计信息:增加总释放计数(而非字节大小,因为 ProxyAllocator 不记录释放的字节数),并递减当前分配计数。
|
||||
释放内存并记录统计。调用转发到底层分配器,同时更新统计信息:递增 `totalFreed`(累加当前分配计数),并递减 `allocationCount`。由于 ProxyAllocator 不记录单独释放的字节数,`totalFreed` 累加的是 `allocationCount` 而非实际字节大小。
|
||||
|
||||
**参数:**
|
||||
- `ptr` - 指向要释放的内存块
|
||||
@@ -29,6 +29,8 @@ proxy.Free(p1);
|
||||
proxy.Free(p2);
|
||||
|
||||
const auto& stats = proxy.GetStats();
|
||||
// totalFreed 累加了每次释放时的 allocationCount
|
||||
// allocationCount 最终为 0
|
||||
printf("Total allocated: %zu, Total freed: %zu, Current: %zu\n",
|
||||
stats.totalAllocated, stats.totalFreed,
|
||||
stats.totalAllocated - stats.totalFreed);
|
||||
|
||||
@@ -4,13 +4,13 @@
|
||||
void* Reallocate(void* ptr, size_t newSize) override;
|
||||
```
|
||||
|
||||
重新分配内存并记录统计。调用转发到底层分配器。此方法仅更新 totalAllocated 统计为新大小,不记录原内存的释放(这是简化实现)。如果底层分配失败返回 `nullptr`,但原指针仍然有效。
|
||||
重新分配内存。调用直接转发到底层分配器,不记录任何统计信息(简化实现)。此方法仅将调用转发给底层分配器。
|
||||
|
||||
**参数:**
|
||||
- `ptr` - 现有内存块指针
|
||||
- `newSize` - 新的字节大小
|
||||
|
||||
**返回:** 成功返回新指针,失败返回 `nullptr`
|
||||
**返回:** 成功返回新指针,失败返回 `nullptr`(由底层分配器决定)
|
||||
|
||||
**复杂度:** O(n)(底层分配器 + 数据复制)
|
||||
|
||||
@@ -28,8 +28,6 @@ void* p2 = proxy.Reallocate(p1, 256);
|
||||
|
||||
if (p2) {
|
||||
// 重新分配成功
|
||||
const auto& stats = proxy.GetStats();
|
||||
printf("Reallocated: %zu bytes total\n", stats.totalAllocated);
|
||||
} else {
|
||||
// 失败,p1 仍然有效
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user