Memcached 学习笔记(二)内存机制
1.Slab Allocation机制
在使用该机制以前,内存分配是使用free和malloc来实现的,这样就会造成大量的内存碎片,加重内存管理器的负担,于是Slab Allocation就是为了应对这个问题的。他的原理就是按照预先定义的大小,将内存分成很多特定长度的块,这样来解决内存碎片。
另外,Slab Allocation还有重复使用已经分配内存的目的,这样,内存不会销毁,只会重复使用。
2.Slab Allocation的缺点
当然,这种机制也会有他的问题,就是说他没法充分利用分配的内存,如下图所示:
3. 使用Growth Factor改进
用以控制slab之间的差异,默认值是1.25,通过-f设定
4.删除机制
使用的LRU算法从内存中有效的删除超时的记录
5.最新的发展方向
(1)使用二进制协议的策划与实现
(2)另一个是外部引擎的加载功能