# 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` | 获取分配器名称 | ## 使用示例 ```cpp #include 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](./memory-manager.md) - 内存管理器 - [LinearAllocator](./memory-linear-allocator.md) - 线性分配器 - [PoolAllocator](./memory-pool-allocator.md) - 内存池分配器