我最近开始浏览 memcached 源代码,并且遇到了这种结构。根据我的理解,大约有 64 个平板,每个平板代表一个独特的块大小。如果我们采用第一个slab 类(例如大小为80),那么属于这个slab 的页面将把它的内存分成80 个字节。
typedef struct {
unsigned int size; // sizes of items
unsigned int perslab; // how many items per slab
void *slots; // list of item ptrs
unsigned int sl_curr; // total free items in list
unsigned int slabs; // how many slabs were allocated for this class
void **slab_list; // array of slab pointers
unsigned int list_size; // size of prev array
size_t requested; // The number of requested bytes
} slabclass_t;
看不懂这条线
unsigned int slabs; // how many slabs were allocated for this class
他所说的为一个slab类分配了多少个slab是什么意思?每个slab类都必须是唯一的,对吧?为什么一个slab类中会有多个slab?我错过了什么吗?