通常采用malloc和free来管理内存,但是容易造成内存碎片,反而加重操作系统内存管理的负担。 memcached底层的内存管理机制,
使用了slabslab的基本思想,是把内存划分为一定大小的块,并把尺寸大小相同的块划分为组。slab还有重复使用已分配内存的功能,
也就是说分配的内存不会被释放,只会被重复利用。这就减少申请和销毁内存所消耗的时间?
memcached维护着一个
空闲slab块列表,存数据的时候,会选择一个最合适的块,存入数据。(这个列表会有多大? 16G/ 1M = 16M =
214 ) memcached中 key/value 的Map是怎么组织的? 可以直接使用STL中的map来组织?
posted on 2009-07-30 01:44
thinke365 阅读(259)
评论(0) 编辑 收藏 引用 所属分类:
HPC