简单的 BumpPointerAllocator
目录
记录一个简单的 Bump Pointer 分配器 实现。
作者在仓库里还带了一个回收算法:压缩清理 + 一定的大小限制,逻辑比较直观。
为了尽量加快分配,用了 slot 结构:取内存数据是 O(1),整体分配最坏是 O(MAX_SLOT),整体效率不错。
核心结构:slot、offset、slice
- offset:按
align_size(8 字节)对齐后的偏移。 - slot[i]:存的是 offset,通过 uid 可以快速定位到对应内存。
- slice:除数据区外还存 id,这样从 pointer 算出 offset 后,也能快速找到对应 slice 和 id。
关系大致如下图:
