Allocators Are Monkeys with Typewriters
a year ago
- #programming
- #buddy-system
- #memory-allocator
- 作者探讨了受mimalloc功能需求启发,如何编写自定义内存分配器来管理预分配的内存区域
- 内存分配器负责内存的分配、释放和重新分配,提供类似malloc/free/resize的接口
- 内存碎片(内部碎片和外部碎片)是分配器需要解决的核心问题,常用基于大小的分桶等策略应对
- 伙伴分配系统被强调为一种简单可靠的技术,甚至被Linux内核所采用
- 伙伴系统通过递归地将内存分割为2的幂次方块,直到满足请求大小
- 释放内存时会将块标记为空闲状态,若其伙伴块也空闲则进行合并
- 作者指出分配器的简洁性,通用型分配器如mimalloc仅需数千行代码即可实现
- 未来计划包括为mimalloc实现预分配内存的使用功能