Files
XCEngine/docs/api/XCEngine/Memory/Allocator/Allocator.md

2.2 KiB

IAllocator

命名空间: XCEngine::Memory

类型: class (abstract interface)

头文件: XCEngine/Memory/Allocator.h

描述: 定义统一的分配、释放、重分配和统计查询接口。

概述

IAllocator 是当前内存模块的基础抽象。它把“如何申请和回收一块内存”统一成一组稳定接口,让上层代码不必直接依赖具体分配器实现。

它的职责分成两部分:

  • 内存操作:AllocateFreeReallocate
  • 统计查询:GetTotalAllocatedGetTotalFreedGetPeakAllocatedGetAllocationCount

设计目的

这类接口在引擎里很有价值,因为:

  • 容器、资源系统和工具系统可以接受任意分配器实现。
  • 不同策略可以共存,例如线性分配器、对象池、系统分配器代理。
  • 调试和统计逻辑可以围绕接口做组合,而不是侵入所有调用点。

当前实现约束

  • IAllocator 只定义形状,不保证线程安全。
  • 统计方法的语义由具体实现决定;当前不同分配器的统计精度并不一致。
  • 不是每个实现都完整支持 FreeReallocate

已知实现

公开方法

方法 说明
Destructor 虚析构函数。
Allocate 申请内存。
Free 释放内存。
Reallocate 调整已分配内存大小。
GetTotalAllocated 查询累计已分配量。
GetTotalFreed 查询累计已释放量。
GetPeakAllocated 查询峰值分配量。
GetAllocationCount 查询当前或累计分配次数。
GetName 查询分配器名称。

相关文档