bins[] 配列は Unsorted / Small / Large の 3 つのビンに保管されるんですが、これはインデックスがあらかじめ定義されています。
1436 /* 1437 Indexing 1438 1439 Bins for sizes < 512 bytes contain chunks of all the same size, spaced 1440 8 bytes apart. Larger bins are approximately logarithmically spaced: 1441 1442 64 bins of size 8 1443 32 bins of size 64 1444 16 bins of size 512 1445 8 bins of size 4096 1446 4 bins of size 32768 1447 2 bins of size 262144 1448 1 bin of size what's left 1449 1450 There is actually a little bit of slop in the numbers in bin_index 1451 for the sake of speed. This makes no difference elsewhere. 1452 1453 The bins top out around 1MB because we expect to service large 1454 requests via mmap. 1455 1456 Bin 0 does not exist. Bin 1 is the unordered list; if that would be 1457 a valid chunk size the small bins are bumped up one. 1458 */
1個のビンは fd と bk がありますんで bins[] 配列の 2 要素を取ると考えてください。
例えば bins[0] と bins[1] は同じ 1 個のビンになります。
ビンのインデックスは以下のように使われます。
このようにbins[] 配列のインデックスから、どの種類のビンに入っているかを確認することができます。
Copyright 2018-2019, by Masaki Komatsu