首页 > 代码库 > memcached 内存管理
memcached 内存管理
整理了一个图,基本就清楚了
slabclass是slabclass_t数组,索引有size决定。
slabclass数组中slabclass_t的size按照1.25倍依次增大,当然这个是可配的,具体这个该搞成多少,我也没有做结合业务做过实验。
slabclass_t中的size就是当前slab中每个块的大小,乘以perslab一共有多少块的话就得到了每个page的大小 size* preslab,每次新分配按照page增加。
内存不够新分配一个page大小,接到slab_list后边。
slots中存放着回收的item,新分配内存需求,优先从这里获取返回。items是放在headers的那个双向链表中的——按照时间的LRU队列。
粗略的过了一遍1.2.2版本的内存管理方式,后续如果有必要细化的话再补充。
memcached 内存管理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。