2.2 KiB
2.2 KiB
IAllocator
命名空间: XCEngine::Memory
类型: class (abstract interface)
描述: 内存分配器抽象接口,定义标准分配协议。
概述
IAllocator 是 XCEngine 内存管理系统的核心抽象接口。它定义了分配、释放和重新分配内存的标准方法,以及内存统计接口。所有专用分配器(LinearAllocator、PoolAllocator、ProxyAllocator)都实现此接口。
公共方法
内存操作
| 方法 | 描述 |
|---|---|
virtual void* Allocate(size_t size, size_t alignment = 0) |
分配内存 |
virtual void Free(void* ptr) |
释放内存 |
virtual void* Reallocate(void* ptr, size_t newSize) |
重新分配内存 |
统计信息
| 方法 | 描述 |
|---|---|
virtual size_t GetTotalAllocated() const |
获取已分配总字节数 |
virtual size_t GetTotalFreed() const |
获取已释放总字节数 |
virtual size_t GetPeakAllocated() const |
获取峰值分配字节数 |
virtual size_t GetAllocationCount() const |
获取分配次数 |
元信息
| 方法 | 描述 |
|---|---|
virtual const char* GetName() const = 0 |
获取分配器名称 |
使用示例
#include <XCEngine/Memory/IAllocator.h>
class MyAllocator : public IAllocator {
public:
void* Allocate(size_t size, size_t alignment = 0) override {
// 实现分配逻辑
return ::operator new(size);
}
void Free(void* ptr) override {
// 实现释放逻辑
::operator delete(ptr);
}
void* Reallocate(void* ptr, size_t newSize) override {
void* newPtr = Allocate(newSize);
// 拷贝旧数据...
Free(ptr);
return newPtr;
}
size_t GetTotalAllocated() const override { return m_allocated; }
size_t GetTotalFreed() const override { return m_freed; }
size_t GetPeakAllocated() const override { return m_peak; }
size_t GetAllocationCount() const override { return m_count; }
const char* GetName() const override { return "MyAllocator"; }
};
相关文档
- MemoryManager - 内存管理器
- LinearAllocator - 线性分配器
- PoolAllocator - 内存池分配器