- 相关数据结构:blocks,super-blocks,bitmap,mini-vector
- block:分配单元,super-block:管理单元
- super_block_size = usecount + bitmap + blocks * block_size
- mini-vector 是控制单元,mini-vector中每两个元素(两根指针)指向某个super-block中的blocks的start和end。随着内存分配需求的增加,mini-vecotr会扩容,同时衍生出新的super_block,新的super_block中的blocks ,和 bitmap 都会增加。blocks的递增示例:64,128,256...
- 当一个super-block全回收时,这个super-block会由另一个free_mini_vector管理。free_mini_vector每个元素指向一个全回收的super-block。free_mini_vector最多64个entries,超过便归还一个最大者entry给操作系统。一个super-block全回收,登记到free_mini_vector,同时修改mini_vector,下次分配规模减半。
- 若有新的分配需求,先检查free_mini_vector中的未释放super-block。
标签:mini,blocks,bitmap,vector,allocator,super,block From: https://www.cnblogs.com/wuyun--wy/p/17650491.html