1.7 KiB
1.7 KiB
ProxyAllocator
命名空间: XCEngine::Memory
类型: class
描述: 代理分配器,用于统计和跟踪底层分配器的分配情况。
概述
ProxyAllocator 包装一个底层分配器,转发所有分配请求,同时记录详细的统计信息。它线程安全(使用互斥锁保护统计数据),适合需要监控内存使用的场景。
公共方法
| 方法 | 描述 |
|---|---|
ProxyAllocator |
构造代理分配器 |
~ProxyAllocator |
析构函数 |
Allocate |
分配内存并记录统计 |
Free |
释放内存并记录统计 |
Reallocate |
转发到底层分配器 |
GetStats |
获取详细统计信息 |
构造函数
ProxyAllocator(IAllocator* underlying, const char* name);
构造一个代理分配器,包装底层分配器并记录分配统计。所有 Allocate、Free、Reallocate 调用都会被转发到底层分配器,同时记录统计信息。名称用于日志和报告。
参数:
underlying- 被包装的底层分配器,不能为nullptrname- 代理分配器的名称字符串
返回: 无
复杂度: O(1)
示例:
#include <XCEngine/Memory/MemoryManager.h>
#include <XCEngine/Memory/ProxyAllocator.h>
MemoryManager::Get().Initialize();
// 使用系统分配器作为底层
IAllocator* sysAlloc = MemoryManager::Get().GetSystemAllocator();
ProxyAllocator proxy(sysAlloc, "TempAllocations");
// 通过代理分配
void* ptr = proxy.Allocate(1024);
proxy.Free(ptr);
相关文档
- Memory 模块总览 - 返回模块总览
- IAllocator - 分配器接口
- MemoryManager - 内存管理器