pub struct SegregatedBumpAllocator;Expand description
Minimal Allocator with Fixed Bins + Bump Pointer Fallback.
极简固定分箱 + Bump Pointer 回退分配器。
§Design Philosophy
- Extreme Size: Abandon Coalescing and Splitting, remove all complex list traversals and metadata headers.
- Speed First: Small object allocation/deallocation are strictly O(1).
- Use Cases: Wasm Serverless functions, short-lived scripts, or scenarios with ample memory but sensitive to startup speed/size.
§设计哲学
- 极简体积:放弃合并(Coalescing)与拆分(Splitting),移除所有复杂的链表遍历和元数据头。
- 速度优先:小对象分配/释放均为严格的 O(1)。
- 场景定位:Wasm Serverless 函数、短生命周期脚本、或内存充裕但对启动速度/体积敏感的场景。
§Memory Layout
- Bin 0: 16 Bytes (for Box
, small structs) - Bin 1: 32 Bytes
- Bin 2: 64 Bytes
- Bin 3: 128 Bytes
- Large: > 128 Bytes, allocated directly using Bump Pointer, not reused.
§内存布局
- Bin 0: 16 Bytes (用于 Box
, small structs) - Bin 1: 32 Bytes
- Bin 2: 64 Bytes
- Bin 3: 128 Bytes
- Large: > 128 Bytes,直接使用 Bump Pointer 分配,不复用。
Implementations§
Trait Implementations§
Source§impl GlobalAlloc for SegregatedBumpAllocator
impl GlobalAlloc for SegregatedBumpAllocator
Source§unsafe fn alloc(&self, layout: Layout) -> *mut u8
unsafe fn alloc(&self, layout: Layout) -> *mut u8
Allocates memory as described by the given
layout. Read moreimpl Sync for SegregatedBumpAllocator
Safety Warning:
Allocators in this module are designed for [Single Threaded] environments.
Sync is implemented only to satisfy GlobalAlloc trait requirements.
Using this allocator in a multi-threaded environment will lead to Undefined Behavior (UB).
Please ensure it is used only in single-threaded environments (e.g., WASM or single-threaded embedded).
安全性警示 (Safety Warning):
本模块中的分配器均为【单线程】设计。
实现了 Sync 仅为了满足 GlobalAlloc trait 的要求。
在多线程环境中使用此分配器会导致未定义行为 (UB)。
请确保只在单线程环境(如 WASM 或单线程嵌入式环境)中使用。