Hasty Briefsbeta

双语

Allocators Are Monkeys with Typewriters

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