OffsetAllocator

操作耗时恒定、内存碎片很少的快速偏移量分配器,适合游戏、图形等需要可预测分配速度的实时程序。

分享到 X许可证: MIT

概述

OffsetAllocator 是一个 C++ 分配器,它分配的是范围内的偏移量而不是内存指针,所有操作都是常数时间。它用按 8 位浮点尺度划分的 256 个桶,以及两级位图来查找下一个空闲桶。这样浪费的空间最多为 12.5%,而按 2 的幂分桶最多会浪费 100%。元数据单独存放,因此可用于对 GPU 堆、缓冲区和数组做子分配。

主要特点

  • O(1) 的分配与释放,适合硬实时
  • 按浮点尺度划分的 256 个桶
  • 浪费最多 12.5%,平均 6.25%
  • 元数据与被管理资源分开存放
  • 返回连续区间的起始偏移量

适用场景

适合在对 GPU 缓冲区等资源做子分配时,需要可预测分配耗时的游戏和图形开发者。它管理的是偏移量,而不是内存本身。

上游仓库
sebbbi/OffsetAllocator
GitHub 上的 fork
Guo-astro/OffsetAllocator
上游 Star 数
1.1k
分类
开发者工具与基础设施
许可证
MIT
Fork 时间
2025-10-24
同步状态
已同步上次同步 2026-09-29