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}