slab内存分配
2016-06-28 11:03:47 3 举报
memcached slab
作者其他创作
大纲/内容
=0
1. 使用p-slots下空闲chunk进行存储,并从链表中删除2. p-sl_curr--
当前slot下空闲chunk是否已使用完成1. =0,slots中无空闲chunk2. !=0,slots中有空闲chunk,可使用
根据item size与slab中size对比,获取cls_id
查看当前slab是否已用完1. ==,重新分配存储空间2. !=,直接分配内存
分配内存mem = size * perslab
End
!=0
=
重新分配slab_list及list_size
将分配的内存,按size分割,并组合成双向链表
p-sl_curr = perslabp-slots = memp-slib_list[p-slabs++] = mem
记录全局内存分配总数mem_malloced
Start
根据cls_id获取p = slab_class[cls_id]
p-sl_curr == 0
!=
p-slabs == p-list_size
0 条评论
下一页