Недавно я начал просматривать исходный код 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
Что он имеет в виду под тем, сколько плит было выделено для класса плит? Каждый класс плиты должен быть уникальным, верно? почему в одном классе плит будет несколько плит? Я что-то упускаю?