架构设计
axalloc 采用了两级分配器的架构:
- 小内存:使用字节分配器管理
- 大内存:使用页分配器管理
支持通过 feature 控制字节分配器算法的选择,包括:
slabbuddytlsf
这三种内存分配算法的实现直接由 allocator crate 提供。
初始化逻辑
- 判断总内存大小是否大于最小的堆内存大小
- 将整个内存区域分配给页分配器
- 从页分配器中取出
MIN_HEAP_SIZE大小的内存交给字节分配器管理
核心实现
alloc_pages()等函数是对上游页分配器对应函数的封装- 实现
GlobalAllocTraits,将其注册为全局内存分配器
没有评论