github.com/matrixorigin/matrixone@v1.2.0/pkg/common/mpool/sizeclasses.go (about)

     1  // Copyright 2021 Matrix Origin
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by mksizeclasses.go; DO NOT EDIT.
    16  //go:generate go run mksizeclasses.go
    17  
    18  package mpool
    19  
    20  // class  bytes/obj  bytes/span  objects  tail waste  max waste  min align
    21  //     1          8        8192     1024           0     87.50%          8
    22  //     2         16        8192      512           0     43.75%         16
    23  //     3         24        8192      341           8     29.24%          8
    24  //     4         32        8192      256           0     21.88%         32
    25  //     5         48        8192      170          32     31.52%         16
    26  //     6         64        8192      128           0     23.44%         64
    27  //     7         80        8192      102          32     19.07%         16
    28  //     8         96        8192       85          32     15.95%         32
    29  //     9        112        8192       73          16     13.56%         16
    30  //    10        128        8192       64           0     11.72%        128
    31  //    11        144        8192       56         128     11.82%         16
    32  //    12        160        8192       51          32      9.73%         32
    33  //    13        176        8192       46          96      9.59%         16
    34  //    14        192        8192       42         128      9.25%         64
    35  //    15        208        8192       39          80      8.12%         16
    36  //    16        224        8192       36         128      8.15%         32
    37  //    17        240        8192       34          32      6.62%         16
    38  //    18        256        8192       32           0      5.86%        256
    39  //    19        288        8192       28         128     12.16%         32
    40  //    20        320        8192       25         192     11.80%         64
    41  //    21        352        8192       23          96      9.88%         32
    42  //    22        384        8192       21         128      9.51%        128
    43  //    23        416        8192       19         288     10.71%         32
    44  //    24        448        8192       18         128      8.37%         64
    45  //    25        480        8192       17          32      6.82%         32
    46  //    26        512        8192       16           0      6.05%        512
    47  //    27        576        8192       14         128     12.33%         64
    48  //    28        640        8192       12         512     15.48%        128
    49  //    29        704        8192       11         448     13.93%         64
    50  //    30        768        8192       10         512     13.94%        256
    51  //    31        896        8192        9         128     15.52%        128
    52  //    32       1024        8192        8           0     12.40%       1024
    53  //    33       1152        8192        7         128     12.41%        128
    54  //    34       1280        8192        6         512     15.55%        256
    55  //    35       1408       16384       11         896     14.00%        128
    56  //    36       1536        8192        5         512     14.00%        512
    57  //    37       1792       16384        9         256     15.57%        256
    58  //    38       2048        8192        4           0     12.45%       2048
    59  //    39       2304       16384        7         256     12.46%        256
    60  //    40       2688        8192        3         128     15.59%        128
    61  //    41       3072       24576        8           0     12.47%       1024
    62  //    42       3200       16384        5         384      6.22%        128
    63  //    43       3456       24576        7         384      8.83%        128
    64  //    44       4096        8192        2           0     15.60%       4096
    65  //    45       4864       24576        5         256     16.65%        256
    66  //    46       5376       16384        3         256     10.92%        256
    67  //    47       6144       24576        4           0     12.48%       2048
    68  //    48       6528       32768        5         128      6.23%        128
    69  //    49       6784       40960        6         256      4.36%        128
    70  //    50       6912       49152        7         768      3.37%        256
    71  //    51       8192        8192        1           0     15.61%       8192
    72  //    52       9472       57344        6         512     14.28%        256
    73  //    53       9728       49152        5         512      3.64%        512
    74  //    54      10240       40960        4           0      4.99%       2048
    75  //    55      10880       32768        3         128      6.24%        128
    76  //    56      12288       24576        2           0     11.45%       4096
    77  //    57      13568       40960        3         256      9.99%        256
    78  //    58      14336       57344        4           0      5.35%       2048
    79  //    59      16384       16384        1           0     12.49%       8192
    80  //    60      18432       73728        4           0     11.11%       2048
    81  //    61      19072       57344        3         128      3.57%        128
    82  //    62      20480       40960        2           0      6.87%       4096
    83  //    63      21760       65536        3         256      6.25%        256
    84  //    64      24576       24576        1           0     11.45%       8192
    85  //    65      27264       81920        3         128     10.00%        128
    86  //    66      28672       57344        2           0      4.91%       4096
    87  //    67      32768       32768        1           0     12.50%       8192
    88  
    89  // alignment  bits  min obj size
    90  //         8     3             8
    91  //        16     4            32
    92  //        32     5           256
    93  //        64     6           512
    94  //       128     7           768
    95  //      4096    12         28672
    96  //      8192    13         32768
    97  
    98  const (
    99  	_MaxSmallSize   = 32768
   100  	smallSizeDiv    = 8
   101  	smallSizeMax    = 1024
   102  	largeSizeDiv    = 128
   103  	_NumSizeClasses = 68
   104  	_PageShift      = 13
   105  	_PageSize       = 8192
   106  )
   107  
   108  var class_to_size = [_NumSizeClasses]uint16{0, 8, 16, 24, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240, 256, 288, 320, 352, 384, 416, 448, 480, 512, 576, 640, 704, 768, 896, 1024, 1152, 1280, 1408, 1536, 1792, 2048, 2304, 2688, 3072, 3200, 3456, 4096, 4864, 5376, 6144, 6528, 6784, 6912, 8192, 9472, 9728, 10240, 10880, 12288, 13568, 14336, 16384, 18432, 19072, 20480, 21760, 24576, 27264, 28672, 32768}
   109  var class_to_allocnpages = [_NumSizeClasses]uint8{0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 1, 2, 1, 3, 2, 3, 1, 3, 2, 3, 4, 5, 6, 1, 7, 6, 5, 4, 3, 5, 7, 2, 9, 7, 5, 8, 3, 10, 7, 4}
   110  var class_to_divmagic = [_NumSizeClasses]uint32{0, ^uint32(0)/8 + 1, ^uint32(0)/16 + 1, ^uint32(0)/24 + 1, ^uint32(0)/32 + 1, ^uint32(0)/48 + 1, ^uint32(0)/64 + 1, ^uint32(0)/80 + 1, ^uint32(0)/96 + 1, ^uint32(0)/112 + 1, ^uint32(0)/128 + 1, ^uint32(0)/144 + 1, ^uint32(0)/160 + 1, ^uint32(0)/176 + 1, ^uint32(0)/192 + 1, ^uint32(0)/208 + 1, ^uint32(0)/224 + 1, ^uint32(0)/240 + 1, ^uint32(0)/256 + 1, ^uint32(0)/288 + 1, ^uint32(0)/320 + 1, ^uint32(0)/352 + 1, ^uint32(0)/384 + 1, ^uint32(0)/416 + 1, ^uint32(0)/448 + 1, ^uint32(0)/480 + 1, ^uint32(0)/512 + 1, ^uint32(0)/576 + 1, ^uint32(0)/640 + 1, ^uint32(0)/704 + 1, ^uint32(0)/768 + 1, ^uint32(0)/896 + 1, ^uint32(0)/1024 + 1, ^uint32(0)/1152 + 1, ^uint32(0)/1280 + 1, ^uint32(0)/1408 + 1, ^uint32(0)/1536 + 1, ^uint32(0)/1792 + 1, ^uint32(0)/2048 + 1, ^uint32(0)/2304 + 1, ^uint32(0)/2688 + 1, ^uint32(0)/3072 + 1, ^uint32(0)/3200 + 1, ^uint32(0)/3456 + 1, ^uint32(0)/4096 + 1, ^uint32(0)/4864 + 1, ^uint32(0)/5376 + 1, ^uint32(0)/6144 + 1, ^uint32(0)/6528 + 1, ^uint32(0)/6784 + 1, ^uint32(0)/6912 + 1, ^uint32(0)/8192 + 1, ^uint32(0)/9472 + 1, ^uint32(0)/9728 + 1, ^uint32(0)/10240 + 1, ^uint32(0)/10880 + 1, ^uint32(0)/12288 + 1, ^uint32(0)/13568 + 1, ^uint32(0)/14336 + 1, ^uint32(0)/16384 + 1, ^uint32(0)/18432 + 1, ^uint32(0)/19072 + 1, ^uint32(0)/20480 + 1, ^uint32(0)/21760 + 1, ^uint32(0)/24576 + 1, ^uint32(0)/27264 + 1, ^uint32(0)/28672 + 1, ^uint32(0)/32768 + 1}
   111  var size_to_class8 = [smallSizeMax/smallSizeDiv + 1]uint8{0, 1, 2, 3, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 27, 27, 27, 27, 28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 30, 30, 30, 30, 30, 30, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32}
   112  var size_to_class128 = [(_MaxSmallSize-smallSizeMax)/largeSizeDiv + 1]uint8{32, 33, 34, 35, 36, 37, 37, 38, 38, 39, 39, 40, 40, 40, 41, 41, 41, 42, 43, 43, 44, 44, 44, 44, 44, 45, 45, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, 47, 47, 48, 48, 48, 49, 49, 50, 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, 58, 58, 58, 58, 58, 58, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 61, 61, 61, 61, 61, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, 67}