Allocator:
这里的目标不一定是内存,是泛指的“空间”,比如硬盘等介质;
SGI实现了一个两层的分配器,
- 第一层级:直接使用malloc和free;其实这个操作成本很高;
- 第二层级:视情况,如果分配块>128bytes,则调用第一层级分配器;否则,采用memeory pool的碎片内存管理方式;比如维护16个自由链表free lists,负责16种小型区块的次分配能力;内存池不足的时候,转调第一层级分配器;
Iterator:
型别:
- value type
- difference type
- pointer
- reference
- iterator category
类型:
- input
- output
- forward
- bi-directional
- random access
关系如下: