Closed klauspost closed 1 year ago
Unroll deltaBitLenAndSignUintXX and lazy merge result for better CPU pipelining.
deltaBitLenAndSignUintXX
benchmark old ns/op new ns/op delta BenchmarkCompressDeltaBinPackInt32/nBits=0,_sign=0-32 228 80.2 -64.82% BenchmarkCompressDeltaBinPackInt32/nBits=0,_sign=1-32 234 79.2 -66.12% BenchmarkCompressDeltaBinPackInt32/nBits=1,_sign=0-32 288 140 -51.46% BenchmarkCompressDeltaBinPackInt32/nBits=1,_sign=1-32 260 109 -57.84% BenchmarkCompressDeltaBinPackInt32/nBits=2,_sign=0-32 285 138 -51.68% BenchmarkCompressDeltaBinPackInt32/nBits=2,_sign=1-32 258 110 -57.64% BenchmarkCompressDeltaBinPackInt32/nBits=3,_sign=0-32 291 156 -46.56% BenchmarkCompressDeltaBinPackInt32/nBits=3,_sign=1-32 264 112 -57.78% BenchmarkCompressDeltaBinPackInt32/nBits=4,_sign=0-32 291 147 -49.45% BenchmarkCompressDeltaBinPackInt32/nBits=4,_sign=1-32 268 109 -59.45% BenchmarkCompressDeltaBinPackInt32/nBits=5,_sign=0-32 315 144 -54.31% BenchmarkCompressDeltaBinPackInt32/nBits=5,_sign=1-32 267 129 -51.61% BenchmarkCompressDeltaBinPackInt32/nBits=6,_sign=0-32 294 142 -51.46% BenchmarkCompressDeltaBinPackInt32/nBits=6,_sign=1-32 261 130 -50.42% BenchmarkCompressDeltaBinPackInt32/nBits=7,_sign=0-32 296 149 -49.61% BenchmarkCompressDeltaBinPackInt32/nBits=7,_sign=1-32 264 127 -51.99% BenchmarkCompressDeltaBinPackInt32/nBits=8,_sign=0-32 281 134 -52.42% BenchmarkCompressDeltaBinPackInt32/nBits=8,_sign=1-32 258 110 -57.24% BenchmarkCompressDeltaBinPackInt32/nBits=9,_sign=0-32 299 169 -43.43% BenchmarkCompressDeltaBinPackInt32/nBits=9,_sign=1-32 269 117 -56.42% BenchmarkCompressDeltaBinPackInt32/nBits=10,_sign=0-32 302 155 -48.77% BenchmarkCompressDeltaBinPackInt32/nBits=10,_sign=1-32 268 117 -56.32% BenchmarkCompressDeltaBinPackInt32/nBits=11,_sign=0-32 320 153 -52.16% BenchmarkCompressDeltaBinPackInt32/nBits=11,_sign=1-32 271 120 -55.63% BenchmarkCompressDeltaBinPackInt32/nBits=12,_sign=0-32 304 150 -50.76% BenchmarkCompressDeltaBinPackInt32/nBits=12,_sign=1-32 274 117 -57.36% BenchmarkCompressDeltaBinPackInt32/nBits=13,_sign=0-32 311 171 -45.07% BenchmarkCompressDeltaBinPackInt32/nBits=13,_sign=1-32 274 131 -52.05% BenchmarkCompressDeltaBinPackInt32/nBits=14,_sign=0-32 305 178 -41.75% BenchmarkCompressDeltaBinPackInt32/nBits=14,_sign=1-32 271 138 -49.04% BenchmarkCompressDeltaBinPackInt32/nBits=15,_sign=0-32 321 161 -49.81% BenchmarkCompressDeltaBinPackInt32/nBits=15,_sign=1-32 273 135 -50.64% BenchmarkCompressDeltaBinPackInt32/nBits=16,_sign=0-32 284 131 -53.85% BenchmarkCompressDeltaBinPackInt32/nBits=16,_sign=1-32 258 109 -57.53% BenchmarkCompressDeltaBinPackInt32/nBits=17,_sign=0-32 310 164 -47.00% BenchmarkCompressDeltaBinPackInt32/nBits=17,_sign=1-32 281 126 -55.31% BenchmarkCompressDeltaBinPackInt32/nBits=18,_sign=0-32 313 189 -39.58% BenchmarkCompressDeltaBinPackInt32/nBits=18,_sign=1-32 283 126 -55.57% BenchmarkCompressDeltaBinPackInt32/nBits=19,_sign=0-32 333 174 -47.67% BenchmarkCompressDeltaBinPackInt32/nBits=19,_sign=1-32 279 127 -54.50% BenchmarkCompressDeltaBinPackInt32/nBits=20,_sign=0-32 318 164 -48.67% BenchmarkCompressDeltaBinPackInt32/nBits=20,_sign=1-32 281 127 -54.79% BenchmarkCompressDeltaBinPackInt32/nBits=21,_sign=0-32 321 191 -40.60% BenchmarkCompressDeltaBinPackInt32/nBits=21,_sign=1-32 283 150 -47.19% BenchmarkCompressDeltaBinPackInt32/nBits=22,_sign=0-32 319 194 -39.07% BenchmarkCompressDeltaBinPackInt32/nBits=22,_sign=1-32 277 141 -49.24% BenchmarkCompressDeltaBinPackInt32/nBits=23,_sign=0-32 341 176 -48.33% BenchmarkCompressDeltaBinPackInt32/nBits=23,_sign=1-32 288 130 -54.82% BenchmarkCompressDeltaBinPackInt32/nBits=24,_sign=0-32 311 163 -47.73% BenchmarkCompressDeltaBinPackInt32/nBits=24,_sign=1-32 273 124 -54.75% BenchmarkCompressDeltaBinPackInt32/nBits=25,_sign=0-32 328 197 -39.99% BenchmarkCompressDeltaBinPackInt32/nBits=25,_sign=1-32 285 133 -53.21% BenchmarkCompressDeltaBinPackInt32/nBits=26,_sign=0-32 340 188 -44.69% BenchmarkCompressDeltaBinPackInt32/nBits=26,_sign=1-32 284 133 -53.20% BenchmarkCompressDeltaBinPackInt32/nBits=27,_sign=0-32 336 183 -45.46% BenchmarkCompressDeltaBinPackInt32/nBits=27,_sign=1-32 291 162 -44.31% BenchmarkCompressDeltaBinPackInt32/nBits=28,_sign=0-32 330 196 -40.75% BenchmarkCompressDeltaBinPackInt32/nBits=28,_sign=1-32 293 135 -54.00% BenchmarkCompressDeltaBinPackInt32/nBits=29,_sign=0-32 348 213 -38.76% BenchmarkCompressDeltaBinPackInt32/nBits=29,_sign=1-32 295 139 -52.97% BenchmarkCompressDeltaBinPackInt32/nBits=30,_sign=0-32 337 188 -44.08% BenchmarkCompressDeltaBinPackInt32/nBits=30,_sign=1-32 284 139 -51.23% BenchmarkCompressDeltaBinPackInt32/nBits=31,_sign=0-32 342 214 -37.41% BenchmarkCompressDeltaBinPackInt32/nBits=31,_sign=1-32 286 137 -52.04% BenchmarkCompressDeltaBinPackInt32/nBits=32,_sign=0-32 342 217 -36.76% BenchmarkCompressDeltaBinPackInt32/nBits=32,_sign=1-32 234 87.1 -62.81% BenchmarkCompressDeltaBinPackUint32/nBits=0,_sign=0-32 218 78.6 -64.00% BenchmarkCompressDeltaBinPackUint32/nBits=0,_sign=1-32 217 80.0 -63.19% BenchmarkCompressDeltaBinPackUint32/nBits=1,_sign=0-32 278 156 -43.60% BenchmarkCompressDeltaBinPackUint32/nBits=1,_sign=1-32 249 128 -48.54% BenchmarkCompressDeltaBinPackUint32/nBits=2,_sign=0-32 278 141 -49.08% BenchmarkCompressDeltaBinPackUint32/nBits=2,_sign=1-32 254 122 -52.07% BenchmarkCompressDeltaBinPackUint32/nBits=3,_sign=0-32 295 143 -51.37% BenchmarkCompressDeltaBinPackUint32/nBits=3,_sign=1-32 254 112 -55.97% BenchmarkCompressDeltaBinPackUint32/nBits=4,_sign=0-32 278 136 -50.86% BenchmarkCompressDeltaBinPackUint32/nBits=4,_sign=1-32 251 111 -55.59% BenchmarkCompressDeltaBinPackUint32/nBits=5,_sign=0-32 281 144 -48.82% BenchmarkCompressDeltaBinPackUint32/nBits=5,_sign=1-32 256 114 -55.50% BenchmarkCompressDeltaBinPackUint32/nBits=6,_sign=0-32 296 165 -44.10% BenchmarkCompressDeltaBinPackUint32/nBits=6,_sign=1-32 251 114 -54.85% BenchmarkCompressDeltaBinPackUint32/nBits=7,_sign=0-32 285 164 -42.51% BenchmarkCompressDeltaBinPackUint32/nBits=7,_sign=1-32 255 116 -54.66% BenchmarkCompressDeltaBinPackUint32/nBits=8,_sign=0-32 275 137 -50.24% BenchmarkCompressDeltaBinPackUint32/nBits=8,_sign=1-32 247 110 -55.62% BenchmarkCompressDeltaBinPackUint32/nBits=9,_sign=0-32 293 151 -48.43% BenchmarkCompressDeltaBinPackUint32/nBits=9,_sign=1-32 255 119 -53.37% BenchmarkCompressDeltaBinPackUint32/nBits=10,_sign=0-32 292 151 -48.29% BenchmarkCompressDeltaBinPackUint32/nBits=10,_sign=1-32 260 140 -45.96% BenchmarkCompressDeltaBinPackUint32/nBits=11,_sign=0-32 299 180 -40.05% BenchmarkCompressDeltaBinPackUint32/nBits=11,_sign=1-32 261 136 -47.82% BenchmarkCompressDeltaBinPackUint32/nBits=12,_sign=0-32 291 169 -41.86% BenchmarkCompressDeltaBinPackUint32/nBits=12,_sign=1-32 257 122 -52.66% BenchmarkCompressDeltaBinPackUint32/nBits=13,_sign=0-32 300 158 -47.25% BenchmarkCompressDeltaBinPackUint32/nBits=13,_sign=1-32 263 122 -53.47% BenchmarkCompressDeltaBinPackUint32/nBits=14,_sign=0-32 293 158 -46.14% BenchmarkCompressDeltaBinPackUint32/nBits=14,_sign=1-32 261 122 -53.18% BenchmarkCompressDeltaBinPackUint32/nBits=15,_sign=0-32 298 160 -46.36% BenchmarkCompressDeltaBinPackUint32/nBits=15,_sign=1-32 261 123 -52.82% BenchmarkCompressDeltaBinPackUint32/nBits=16,_sign=0-32 273 152 -44.27% BenchmarkCompressDeltaBinPackUint32/nBits=16,_sign=1-32 246 108 -55.96% BenchmarkCompressDeltaBinPackUint32/nBits=17,_sign=0-32 305 178 -41.57% BenchmarkCompressDeltaBinPackUint32/nBits=17,_sign=1-32 267 127 -52.51% BenchmarkCompressDeltaBinPackUint32/nBits=18,_sign=0-32 314 165 -47.53% BenchmarkCompressDeltaBinPackUint32/nBits=18,_sign=1-32 269 145 -46.23% BenchmarkCompressDeltaBinPackUint32/nBits=19,_sign=0-32 312 170 -45.66% BenchmarkCompressDeltaBinPackUint32/nBits=19,_sign=1-32 269 146 -45.82% BenchmarkCompressDeltaBinPackUint32/nBits=20,_sign=0-32 316 183 -42.17% BenchmarkCompressDeltaBinPackUint32/nBits=20,_sign=1-32 266 126 -52.73% BenchmarkCompressDeltaBinPackUint32/nBits=21,_sign=0-32 312 176 -43.67% BenchmarkCompressDeltaBinPackUint32/nBits=21,_sign=1-32 269 129 -52.05% BenchmarkCompressDeltaBinPackUint32/nBits=22,_sign=0-32 311 175 -43.80% BenchmarkCompressDeltaBinPackUint32/nBits=22,_sign=1-32 268 129 -51.81% BenchmarkCompressDeltaBinPackUint32/nBits=23,_sign=0-32 314 199 -36.58% BenchmarkCompressDeltaBinPackUint32/nBits=23,_sign=1-32 269 132 -51.12% BenchmarkCompressDeltaBinPackUint32/nBits=24,_sign=0-32 314 187 -40.44% BenchmarkCompressDeltaBinPackUint32/nBits=24,_sign=1-32 264 142 -46.31% BenchmarkCompressDeltaBinPackUint32/nBits=25,_sign=0-32 325 182 -44.05% BenchmarkCompressDeltaBinPackUint32/nBits=25,_sign=1-32 282 158 -43.73% BenchmarkCompressDeltaBinPackUint32/nBits=26,_sign=0-32 323 180 -44.36% BenchmarkCompressDeltaBinPackUint32/nBits=26,_sign=1-32 280 134 -51.93% BenchmarkCompressDeltaBinPackUint32/nBits=27,_sign=0-32 342 210 -38.52% BenchmarkCompressDeltaBinPackUint32/nBits=27,_sign=1-32 276 135 -51.09% BenchmarkCompressDeltaBinPackUint32/nBits=28,_sign=0-32 319 187 -41.50% BenchmarkCompressDeltaBinPackUint32/nBits=28,_sign=1-32 273 149 -45.50% BenchmarkCompressDeltaBinPackUint32/nBits=29,_sign=0-32 324 188 -42.12% BenchmarkCompressDeltaBinPackUint32/nBits=29,_sign=1-32 276 137 -50.52% BenchmarkCompressDeltaBinPackUint32/nBits=30,_sign=0-32 328 208 -36.63% BenchmarkCompressDeltaBinPackUint32/nBits=30,_sign=1-32 290 164 -43.36% BenchmarkCompressDeltaBinPackUint32/nBits=31,_sign=0-32 335 201 -39.92% BenchmarkCompressDeltaBinPackUint32/nBits=31,_sign=1-32 280 142 -49.38% BenchmarkCompressDeltaBinPackUint32/nBits=32,_sign=0-32 338 200 -40.94% BenchmarkCompressDeltaBinPackUint32/nBits=32,_sign=1-32 228 89.0 -61.07% BenchmarkCompressDeltaBinPackInt64/nBits=0,_ntz=0,_sign=0-32 433 150 -65.45% BenchmarkCompressDeltaBinPackInt64/nBits=0,_ntz=0,_sign=1-32 435 150 -65.59% BenchmarkCompressDeltaBinPackInt64/nBits=0,_ntz=31,_sign=0-32 429 151 -64.89% BenchmarkCompressDeltaBinPackInt64/nBits=0,_ntz=31,_sign=1-32 428 148 -65.30% BenchmarkCompressDeltaBinPackInt64/nBits=0,_ntz=62,_sign=0-32 450 150 -66.69% BenchmarkCompressDeltaBinPackInt64/nBits=0,_ntz=62,_sign=1-32 434 149 -65.65% BenchmarkCompressDeltaBinPackInt64/nBits=1,_ntz=0,_sign=0-32 574 332 -42.09% BenchmarkCompressDeltaBinPackInt64/nBits=1,_ntz=0,_sign=1-32 519 246 -52.55% BenchmarkCompressDeltaBinPackInt64/nBits=1,_ntz=31,_sign=0-32 527 243 -53.92% BenchmarkCompressDeltaBinPackInt64/nBits=1,_ntz=31,_sign=1-32 524 243 -53.61% BenchmarkCompressDeltaBinPackInt64/nBits=1,_ntz=62,_sign=0-32 588 322 -45.26% BenchmarkCompressDeltaBinPackInt64/nBits=1,_ntz=62,_sign=1-32 592 361 -39.07% BenchmarkCompressDeltaBinPackInt64/nBits=2,_ntz=0,_sign=0-32 582 299 -48.71% BenchmarkCompressDeltaBinPackInt64/nBits=2,_ntz=0,_sign=1-32 524 277 -47.23% BenchmarkCompressDeltaBinPackInt64/nBits=2,_ntz=31,_sign=0-32 532 279 -47.61% BenchmarkCompressDeltaBinPackInt64/nBits=2,_ntz=31,_sign=1-32 527 278 -47.17% BenchmarkCompressDeltaBinPackInt64/nBits=2,_ntz=62,_sign=0-32 894 610 -31.85% BenchmarkCompressDeltaBinPackInt64/nBits=2,_ntz=62,_sign=1-32 468 172 -63.17% BenchmarkCompressDeltaBinPackInt64/nBits=3,_ntz=0,_sign=0-32 587 346 -41.11% BenchmarkCompressDeltaBinPackInt64/nBits=3,_ntz=0,_sign=1-32 531 273 -48.49% BenchmarkCompressDeltaBinPackInt64/nBits=3,_ntz=31,_sign=0-32 531 273 -48.60% BenchmarkCompressDeltaBinPackInt64/nBits=3,_ntz=31,_sign=1-32 529 274 -48.16% BenchmarkCompressDeltaBinPackInt64/nBits=4,_ntz=0,_sign=0-32 571 319 -44.03% BenchmarkCompressDeltaBinPackInt64/nBits=4,_ntz=0,_sign=1-32 523 266 -49.10% BenchmarkCompressDeltaBinPackInt64/nBits=4,_ntz=31,_sign=0-32 525 266 -49.27% BenchmarkCompressDeltaBinPackInt64/nBits=4,_ntz=31,_sign=1-32 526 267 -49.26% BenchmarkCompressDeltaBinPackInt64/nBits=5,_ntz=0,_sign=0-32 608 323 -46.81% BenchmarkCompressDeltaBinPackInt64/nBits=5,_ntz=0,_sign=1-32 545 286 -47.54% BenchmarkCompressDeltaBinPackInt64/nBits=5,_ntz=31,_sign=0-32 541 284 -47.55% BenchmarkCompressDeltaBinPackInt64/nBits=5,_ntz=31,_sign=1-32 530 284 -46.38% BenchmarkCompressDeltaBinPackInt64/nBits=6,_ntz=0,_sign=0-32 604 341 -43.63% BenchmarkCompressDeltaBinPackInt64/nBits=6,_ntz=0,_sign=1-32 534 254 -52.51% BenchmarkCompressDeltaBinPackInt64/nBits=6,_ntz=31,_sign=0-32 533 250 -53.05% BenchmarkCompressDeltaBinPackInt64/nBits=6,_ntz=31,_sign=1-32 528 252 -52.37% BenchmarkCompressDeltaBinPackInt64/nBits=7,_ntz=0,_sign=0-32 591 350 -40.77% BenchmarkCompressDeltaBinPackInt64/nBits=7,_ntz=0,_sign=1-32 534 301 -43.66% BenchmarkCompressDeltaBinPackInt64/nBits=7,_ntz=31,_sign=0-32 536 301 -43.81% BenchmarkCompressDeltaBinPackInt64/nBits=7,_ntz=31,_sign=1-32 538 299 -44.32% BenchmarkCompressDeltaBinPackInt64/nBits=8,_ntz=0,_sign=0-32 574 302 -47.43% BenchmarkCompressDeltaBinPackInt64/nBits=8,_ntz=0,_sign=1-32 524 241 -54.08% BenchmarkCompressDeltaBinPackInt64/nBits=8,_ntz=31,_sign=0-32 525 243 -53.75% BenchmarkCompressDeltaBinPackInt64/nBits=8,_ntz=31,_sign=1-32 529 243 -54.16% BenchmarkCompressDeltaBinPackInt64/nBits=9,_ntz=0,_sign=0-32 599 364 -39.28% BenchmarkCompressDeltaBinPackInt64/nBits=9,_ntz=0,_sign=1-32 549 290 -47.10% BenchmarkCompressDeltaBinPackInt64/nBits=9,_ntz=31,_sign=0-32 554 289 -47.74% BenchmarkCompressDeltaBinPackInt64/nBits=9,_ntz=31,_sign=1-32 550 290 -47.21% BenchmarkCompressDeltaBinPackInt64/nBits=10,_ntz=0,_sign=0-32 603 362 -39.96% BenchmarkCompressDeltaBinPackInt64/nBits=10,_ntz=0,_sign=1-32 539 263 -51.21% BenchmarkCompressDeltaBinPackInt64/nBits=10,_ntz=31,_sign=0-32 539 263 -51.20% BenchmarkCompressDeltaBinPackInt64/nBits=10,_ntz=31,_sign=1-32 545 262 -51.84% BenchmarkCompressDeltaBinPackInt64/nBits=11,_ntz=0,_sign=0-32 600 351 -41.43% BenchmarkCompressDeltaBinPackInt64/nBits=11,_ntz=0,_sign=1-32 549 312 -43.27% BenchmarkCompressDeltaBinPackInt64/nBits=11,_ntz=31,_sign=0-32 550 309 -43.74% BenchmarkCompressDeltaBinPackInt64/nBits=11,_ntz=31,_sign=1-32 550 311 -43.45% BenchmarkCompressDeltaBinPackInt64/nBits=12,_ntz=0,_sign=0-32 599 339 -43.48% BenchmarkCompressDeltaBinPackInt64/nBits=12,_ntz=0,_sign=1-32 537 257 -52.11% BenchmarkCompressDeltaBinPackInt64/nBits=12,_ntz=31,_sign=0-32 538 255 -52.62% BenchmarkCompressDeltaBinPackInt64/nBits=12,_ntz=31,_sign=1-32 544 256 -52.88% BenchmarkCompressDeltaBinPackInt64/nBits=13,_ntz=0,_sign=0-32 650 379 -41.79% BenchmarkCompressDeltaBinPackInt64/nBits=13,_ntz=0,_sign=1-32 553 322 -41.72% BenchmarkCompressDeltaBinPackInt64/nBits=13,_ntz=31,_sign=0-32 552 322 -41.61% BenchmarkCompressDeltaBinPackInt64/nBits=13,_ntz=31,_sign=1-32 552 323 -41.47% BenchmarkCompressDeltaBinPackInt64/nBits=14,_ntz=0,_sign=0-32 610 369 -39.49% BenchmarkCompressDeltaBinPackInt64/nBits=14,_ntz=0,_sign=1-32 550 300 -45.52% BenchmarkCompressDeltaBinPackInt64/nBits=14,_ntz=31,_sign=0-32 555 297 -46.54% BenchmarkCompressDeltaBinPackInt64/nBits=14,_ntz=31,_sign=1-32 546 298 -45.41% BenchmarkCompressDeltaBinPackInt64/nBits=15,_ntz=0,_sign=0-32 617 369 -40.19% BenchmarkCompressDeltaBinPackInt64/nBits=15,_ntz=0,_sign=1-32 562 301 -46.44% BenchmarkCompressDeltaBinPackInt64/nBits=15,_ntz=31,_sign=0-32 557 304 -45.46% BenchmarkCompressDeltaBinPackInt64/nBits=15,_ntz=31,_sign=1-32 560 305 -45.44% BenchmarkCompressDeltaBinPackInt64/nBits=16,_ntz=0,_sign=0-32 606 290 -52.14% BenchmarkCompressDeltaBinPackInt64/nBits=16,_ntz=0,_sign=1-32 523 242 -53.73% BenchmarkCompressDeltaBinPackInt64/nBits=16,_ntz=31,_sign=0-32 522 243 -53.44% BenchmarkCompressDeltaBinPackInt64/nBits=16,_ntz=31,_sign=1-32 516 242 -53.10% BenchmarkCompressDeltaBinPackInt64/nBits=17,_ntz=0,_sign=0-32 663 396 -40.35% BenchmarkCompressDeltaBinPackInt64/nBits=17,_ntz=0,_sign=1-32 558 307 -44.91% BenchmarkCompressDeltaBinPackInt64/nBits=17,_ntz=31,_sign=0-32 561 308 -45.16% BenchmarkCompressDeltaBinPackInt64/nBits=17,_ntz=31,_sign=1-32 558 310 -44.37% BenchmarkCompressDeltaBinPackInt64/nBits=18,_ntz=0,_sign=0-32 617 374 -39.30% BenchmarkCompressDeltaBinPackInt64/nBits=18,_ntz=0,_sign=1-32 570 310 -45.59% BenchmarkCompressDeltaBinPackInt64/nBits=18,_ntz=31,_sign=0-32 567 312 -45.03% BenchmarkCompressDeltaBinPackInt64/nBits=18,_ntz=31,_sign=1-32 563 309 -45.16% BenchmarkCompressDeltaBinPackInt64/nBits=19,_ntz=0,_sign=0-32 636 384 -39.68% BenchmarkCompressDeltaBinPackInt64/nBits=19,_ntz=0,_sign=1-32 567 282 -50.29% BenchmarkCompressDeltaBinPackInt64/nBits=19,_ntz=31,_sign=0-32 574 284 -50.59% BenchmarkCompressDeltaBinPackInt64/nBits=19,_ntz=31,_sign=1-32 568 284 -49.99% BenchmarkCompressDeltaBinPackInt64/nBits=20,_ntz=0,_sign=0-32 637 375 -41.19% BenchmarkCompressDeltaBinPackInt64/nBits=20,_ntz=0,_sign=1-32 555 300 -45.89% BenchmarkCompressDeltaBinPackInt64/nBits=20,_ntz=31,_sign=0-32 555 303 -45.48% BenchmarkCompressDeltaBinPackInt64/nBits=20,_ntz=31,_sign=1-32 558 300 -46.34% BenchmarkCompressDeltaBinPackInt64/nBits=21,_ntz=0,_sign=0-32 629 402 -36.06% BenchmarkCompressDeltaBinPackInt64/nBits=21,_ntz=0,_sign=1-32 566 318 -43.73% BenchmarkCompressDeltaBinPackInt64/nBits=21,_ntz=31,_sign=0-32 581 321 -44.81% BenchmarkCompressDeltaBinPackInt64/nBits=21,_ntz=31,_sign=1-32 568 320 -43.63% BenchmarkCompressDeltaBinPackInt64/nBits=22,_ntz=0,_sign=0-32 632 405 -35.91% BenchmarkCompressDeltaBinPackInt64/nBits=22,_ntz=0,_sign=1-32 578 320 -44.72% BenchmarkCompressDeltaBinPackInt64/nBits=22,_ntz=31,_sign=0-32 573 319 -44.36% BenchmarkCompressDeltaBinPackInt64/nBits=22,_ntz=31,_sign=1-32 571 321 -43.82% BenchmarkCompressDeltaBinPackInt64/nBits=23,_ntz=0,_sign=0-32 647 400 -38.09% BenchmarkCompressDeltaBinPackInt64/nBits=23,_ntz=0,_sign=1-32 571 322 -43.72% BenchmarkCompressDeltaBinPackInt64/nBits=23,_ntz=31,_sign=0-32 567 324 -42.80% BenchmarkCompressDeltaBinPackInt64/nBits=23,_ntz=31,_sign=1-32 571 323 -43.41% BenchmarkCompressDeltaBinPackInt64/nBits=24,_ntz=0,_sign=0-32 610 361 -40.79% BenchmarkCompressDeltaBinPackInt64/nBits=24,_ntz=0,_sign=1-32 546 282 -48.34% BenchmarkCompressDeltaBinPackInt64/nBits=24,_ntz=31,_sign=0-32 547 275 -49.74% BenchmarkCompressDeltaBinPackInt64/nBits=24,_ntz=31,_sign=1-32 546 278 -49.12% BenchmarkCompressDeltaBinPackInt64/nBits=25,_ntz=0,_sign=0-32 655 425 -35.09% BenchmarkCompressDeltaBinPackInt64/nBits=25,_ntz=0,_sign=1-32 577 330 -42.76% BenchmarkCompressDeltaBinPackInt64/nBits=25,_ntz=31,_sign=0-32 581 328 -43.60% BenchmarkCompressDeltaBinPackInt64/nBits=25,_ntz=31,_sign=1-32 587 322 -45.12% BenchmarkCompressDeltaBinPackInt64/nBits=26,_ntz=0,_sign=0-32 651 421 -35.38% BenchmarkCompressDeltaBinPackInt64/nBits=26,_ntz=0,_sign=1-32 582 329 -43.39% BenchmarkCompressDeltaBinPackInt64/nBits=26,_ntz=31,_sign=0-32 576 331 -42.60% BenchmarkCompressDeltaBinPackInt64/nBits=26,_ntz=31,_sign=1-32 572 332 -42.05% BenchmarkCompressDeltaBinPackInt64/nBits=27,_ntz=0,_sign=0-32 655 403 -38.52% BenchmarkCompressDeltaBinPackInt64/nBits=27,_ntz=0,_sign=1-32 584 363 -37.88% BenchmarkCompressDeltaBinPackInt64/nBits=27,_ntz=31,_sign=0-32 582 358 -38.39% BenchmarkCompressDeltaBinPackInt64/nBits=27,_ntz=31,_sign=1-32 584 364 -37.68% BenchmarkCompressDeltaBinPackInt64/nBits=28,_ntz=0,_sign=0-32 649 370 -43.04% BenchmarkCompressDeltaBinPackInt64/nBits=28,_ntz=0,_sign=1-32 579 307 -47.05% BenchmarkCompressDeltaBinPackInt64/nBits=28,_ntz=31,_sign=0-32 570 309 -45.77% BenchmarkCompressDeltaBinPackInt64/nBits=28,_ntz=31,_sign=1-32 578 304 -47.52% BenchmarkCompressDeltaBinPackInt64/nBits=29,_ntz=0,_sign=0-32 708 445 -37.16% BenchmarkCompressDeltaBinPackInt64/nBits=29,_ntz=0,_sign=1-32 594 367 -38.19% BenchmarkCompressDeltaBinPackInt64/nBits=29,_ntz=31,_sign=0-32 589 364 -38.24% BenchmarkCompressDeltaBinPackInt64/nBits=29,_ntz=31,_sign=1-32 591 374 -36.73% BenchmarkCompressDeltaBinPackInt64/nBits=30,_ntz=0,_sign=0-32 692 440 -36.34% BenchmarkCompressDeltaBinPackInt64/nBits=30,_ntz=0,_sign=1-32 587 323 -45.01% BenchmarkCompressDeltaBinPackInt64/nBits=30,_ntz=31,_sign=0-32 583 323 -44.68% BenchmarkCompressDeltaBinPackInt64/nBits=30,_ntz=31,_sign=1-32 586 322 -45.15% BenchmarkCompressDeltaBinPackInt64/nBits=31,_ntz=0,_sign=0-32 694 408 -41.27% BenchmarkCompressDeltaBinPackInt64/nBits=31,_ntz=0,_sign=1-32 593 359 -39.50% BenchmarkCompressDeltaBinPackInt64/nBits=31,_ntz=31,_sign=0-32 599 358 -40.15% BenchmarkCompressDeltaBinPackInt64/nBits=31,_ntz=31,_sign=1-32 596 363 -38.99% BenchmarkCompressDeltaBinPackInt64/nBits=32,_ntz=0,_sign=0-32 578 324 -43.86% BenchmarkCompressDeltaBinPackInt64/nBits=32,_ntz=0,_sign=1-32 524 246 -53.10% BenchmarkCompressDeltaBinPackInt64/nBits=32,_ntz=31,_sign=0-32 518 250 -51.75% BenchmarkCompressDeltaBinPackInt64/nBits=32,_ntz=31,_sign=1-32 520 243 -53.24% BenchmarkCompressDeltaBinPackInt64/nBits=33,_ntz=0,_sign=0-32 732 424 -42.01% BenchmarkCompressDeltaBinPackInt64/nBits=33,_ntz=0,_sign=1-32 603 319 -47.05% BenchmarkCompressDeltaBinPackInt64/nBits=33,_ntz=31,_sign=0-32 891 600 -32.67% BenchmarkCompressDeltaBinPackInt64/nBits=33,_ntz=31,_sign=1-32 450 174 -61.28% BenchmarkCompressDeltaBinPackInt64/nBits=34,_ntz=0,_sign=0-32 710 452 -36.38% BenchmarkCompressDeltaBinPackInt64/nBits=34,_ntz=0,_sign=1-32 601 334 -44.46% BenchmarkCompressDeltaBinPackInt64/nBits=35,_ntz=0,_sign=0-32 722 465 -35.66% BenchmarkCompressDeltaBinPackInt64/nBits=35,_ntz=0,_sign=1-32 608 357 -41.27% BenchmarkCompressDeltaBinPackInt64/nBits=36,_ntz=0,_sign=0-32 710 444 -37.51% BenchmarkCompressDeltaBinPackInt64/nBits=36,_ntz=0,_sign=1-32 590 365 -38.08% BenchmarkCompressDeltaBinPackInt64/nBits=37,_ntz=0,_sign=0-32 713 487 -31.62% BenchmarkCompressDeltaBinPackInt64/nBits=37,_ntz=0,_sign=1-32 610 350 -42.58% BenchmarkCompressDeltaBinPackInt64/nBits=38,_ntz=0,_sign=0-32 730 452 -38.11% BenchmarkCompressDeltaBinPackInt64/nBits=38,_ntz=0,_sign=1-32 606 349 -42.48% BenchmarkCompressDeltaBinPackInt64/nBits=39,_ntz=0,_sign=0-32 733 476 -35.12% BenchmarkCompressDeltaBinPackInt64/nBits=39,_ntz=0,_sign=1-32 609 379 -37.77% BenchmarkCompressDeltaBinPackInt64/nBits=40,_ntz=0,_sign=0-32 655 438 -33.10% BenchmarkCompressDeltaBinPackInt64/nBits=40,_ntz=0,_sign=1-32 578 318 -44.95% BenchmarkCompressDeltaBinPackInt64/nBits=41,_ntz=0,_sign=0-32 721 468 -35.09% BenchmarkCompressDeltaBinPackInt64/nBits=41,_ntz=0,_sign=1-32 618 350 -43.26% BenchmarkCompressDeltaBinPackInt64/nBits=42,_ntz=0,_sign=0-32 784 442 -43.57% BenchmarkCompressDeltaBinPackInt64/nBits=42,_ntz=0,_sign=1-32 622 348 -44.01% BenchmarkCompressDeltaBinPackInt64/nBits=43,_ntz=0,_sign=0-32 754 499 -33.77% BenchmarkCompressDeltaBinPackInt64/nBits=43,_ntz=0,_sign=1-32 622 389 -37.49% BenchmarkCompressDeltaBinPackInt64/nBits=44,_ntz=0,_sign=0-32 730 484 -33.68% BenchmarkCompressDeltaBinPackInt64/nBits=44,_ntz=0,_sign=1-32 603 337 -44.14% BenchmarkCompressDeltaBinPackInt64/nBits=45,_ntz=0,_sign=0-32 796 535 -32.83% BenchmarkCompressDeltaBinPackInt64/nBits=45,_ntz=0,_sign=1-32 641 365 -43.01% BenchmarkCompressDeltaBinPackInt64/nBits=46,_ntz=0,_sign=0-32 778 509 -34.66% BenchmarkCompressDeltaBinPackInt64/nBits=46,_ntz=0,_sign=1-32 734 368 -49.85% BenchmarkCompressDeltaBinPackInt64/nBits=47,_ntz=0,_sign=0-32 763 512 -32.94% BenchmarkCompressDeltaBinPackInt64/nBits=47,_ntz=0,_sign=1-32 625 394 -37.01% BenchmarkCompressDeltaBinPackInt64/nBits=48,_ntz=0,_sign=0-32 804 418 -47.97% BenchmarkCompressDeltaBinPackInt64/nBits=48,_ntz=0,_sign=1-32 574 291 -49.31% BenchmarkCompressDeltaBinPackInt64/nBits=49,_ntz=0,_sign=0-32 877 442 -49.58% BenchmarkCompressDeltaBinPackInt64/nBits=49,_ntz=0,_sign=1-32 634 401 -36.74% BenchmarkCompressDeltaBinPackInt64/nBits=50,_ntz=0,_sign=0-32 778 539 -30.72% BenchmarkCompressDeltaBinPackInt64/nBits=50,_ntz=0,_sign=1-32 644 372 -42.27% BenchmarkCompressDeltaBinPackInt64/nBits=51,_ntz=0,_sign=0-32 853 513 -39.82% BenchmarkCompressDeltaBinPackInt64/nBits=51,_ntz=0,_sign=1-32 637 431 -32.35% BenchmarkCompressDeltaBinPackInt64/nBits=52,_ntz=0,_sign=0-32 738 495 -32.91% BenchmarkCompressDeltaBinPackInt64/nBits=52,_ntz=0,_sign=1-32 620 358 -42.30% BenchmarkCompressDeltaBinPackInt64/nBits=53,_ntz=0,_sign=0-32 836 566 -32.29% BenchmarkCompressDeltaBinPackInt64/nBits=53,_ntz=0,_sign=1-32 666 381 -42.76% BenchmarkCompressDeltaBinPackInt64/nBits=54,_ntz=0,_sign=0-32 792 557 -29.67% BenchmarkCompressDeltaBinPackInt64/nBits=54,_ntz=0,_sign=1-32 674 430 -36.17% BenchmarkCompressDeltaBinPackInt64/nBits=55,_ntz=0,_sign=0-32 887 480 -45.85% BenchmarkCompressDeltaBinPackInt64/nBits=55,_ntz=0,_sign=1-32 672 456 -32.09% BenchmarkCompressDeltaBinPackInt64/nBits=56,_ntz=0,_sign=0-32 745 491 -34.02% BenchmarkCompressDeltaBinPackInt64/nBits=56,_ntz=0,_sign=1-32 608 369 -39.25% BenchmarkCompressDeltaBinPackInt64/nBits=57,_ntz=0,_sign=0-32 855 584 -31.66% BenchmarkCompressDeltaBinPackInt64/nBits=57,_ntz=0,_sign=1-32 654 459 -29.82% BenchmarkCompressDeltaBinPackInt64/nBits=58,_ntz=0,_sign=0-32 786 578 -26.50% BenchmarkCompressDeltaBinPackInt64/nBits=58,_ntz=0,_sign=1-32 662 393 -40.69% BenchmarkCompressDeltaBinPackInt64/nBits=59,_ntz=0,_sign=0-32 836 557 -33.37% BenchmarkCompressDeltaBinPackInt64/nBits=59,_ntz=0,_sign=1-32 700 405 -42.14% BenchmarkCompressDeltaBinPackInt64/nBits=60,_ntz=0,_sign=0-32 849 554 -34.76% BenchmarkCompressDeltaBinPackInt64/nBits=60,_ntz=0,_sign=1-32 664 446 -32.73% BenchmarkCompressDeltaBinPackInt64/nBits=61,_ntz=0,_sign=0-32 857 601 -29.87% BenchmarkCompressDeltaBinPackInt64/nBits=61,_ntz=0,_sign=1-32 704 473 -32.76% BenchmarkCompressDeltaBinPackInt64/nBits=62,_ntz=0,_sign=0-32 841 571 -32.04% BenchmarkCompressDeltaBinPackInt64/nBits=62,_ntz=0,_sign=1-32 682 408 -40.16% BenchmarkCompressDeltaBinPackInt64/nBits=63,_ntz=0,_sign=0-32 898 603 -32.84% BenchmarkCompressDeltaBinPackInt64/nBits=63,_ntz=0,_sign=1-32 725 411 -43.33% BenchmarkCompressDeltaBinPackInt64/nBits=64,_ntz=0,_sign=0-32 890 605 -32.03% BenchmarkCompressDeltaBinPackInt64/nBits=64,_ntz=0,_sign=1-32 458 172 -62.52% BenchmarkCompressDeltaBinPackUint64/nBits=0,_sign=0-32 382 141 -63.04% BenchmarkCompressDeltaBinPackUint64/nBits=0,_sign=1-32 380 142 -62.68% BenchmarkCompressDeltaBinPackUint64/nBits=1,_sign=0-32 502 270 -46.21% BenchmarkCompressDeltaBinPackUint64/nBits=1,_sign=1-32 448 207 -53.84% BenchmarkCompressDeltaBinPackUint64/nBits=2,_sign=0-32 504 291 -42.29% BenchmarkCompressDeltaBinPackUint64/nBits=2,_sign=1-32 453 204 -55.08% BenchmarkCompressDeltaBinPackUint64/nBits=3,_sign=0-32 514 266 -48.22% BenchmarkCompressDeltaBinPackUint64/nBits=3,_sign=1-32 453 224 -50.57% BenchmarkCompressDeltaBinPackUint64/nBits=4,_sign=0-32 506 295 -41.68% BenchmarkCompressDeltaBinPackUint64/nBits=4,_sign=1-32 447 213 -52.33% BenchmarkCompressDeltaBinPackUint64/nBits=5,_sign=0-32 512 267 -47.88% BenchmarkCompressDeltaBinPackUint64/nBits=5,_sign=1-32 449 207 -53.98% BenchmarkCompressDeltaBinPackUint64/nBits=6,_sign=0-32 508 303 -40.34% BenchmarkCompressDeltaBinPackUint64/nBits=6,_sign=1-32 452 227 -49.71% BenchmarkCompressDeltaBinPackUint64/nBits=7,_sign=0-32 510 280 -45.17% BenchmarkCompressDeltaBinPackUint64/nBits=7,_sign=1-32 451 226 -49.80% BenchmarkCompressDeltaBinPackUint64/nBits=8,_sign=0-32 499 292 -41.46% BenchmarkCompressDeltaBinPackUint64/nBits=8,_sign=1-32 443 208 -52.99% BenchmarkCompressDeltaBinPackUint64/nBits=9,_sign=0-32 516 287 -44.34% BenchmarkCompressDeltaBinPackUint64/nBits=9,_sign=1-32 459 235 -48.80% BenchmarkCompressDeltaBinPackUint64/nBits=10,_sign=0-32 613 305 -50.28% BenchmarkCompressDeltaBinPackUint64/nBits=10,_sign=1-32 456 214 -52.96% BenchmarkCompressDeltaBinPackUint64/nBits=11,_sign=0-32 520 313 -39.72% BenchmarkCompressDeltaBinPackUint64/nBits=11,_sign=1-32 455 212 -53.35% BenchmarkCompressDeltaBinPackUint64/nBits=12,_sign=0-32 508 267 -47.42% BenchmarkCompressDeltaBinPackUint64/nBits=12,_sign=1-32 447 234 -47.75% BenchmarkCompressDeltaBinPackUint64/nBits=13,_sign=0-32 521 318 -38.90% BenchmarkCompressDeltaBinPackUint64/nBits=13,_sign=1-32 456 242 -46.82% BenchmarkCompressDeltaBinPackUint64/nBits=14,_sign=0-32 520 292 -43.84% BenchmarkCompressDeltaBinPackUint64/nBits=14,_sign=1-32 451 216 -52.22% BenchmarkCompressDeltaBinPackUint64/nBits=15,_sign=0-32 526 320 -39.19% BenchmarkCompressDeltaBinPackUint64/nBits=15,_sign=1-32 462 245 -46.87% BenchmarkCompressDeltaBinPackUint64/nBits=16,_sign=0-32 497 293 -41.14% BenchmarkCompressDeltaBinPackUint64/nBits=16,_sign=1-32 449 208 -53.79% BenchmarkCompressDeltaBinPackUint64/nBits=17,_sign=0-32 524 366 -30.24% BenchmarkCompressDeltaBinPackUint64/nBits=17,_sign=1-32 468 219 -53.22% BenchmarkCompressDeltaBinPackUint64/nBits=18,_sign=0-32 529 316 -40.34% BenchmarkCompressDeltaBinPackUint64/nBits=18,_sign=1-32 459 248 -46.08% BenchmarkCompressDeltaBinPackUint64/nBits=19,_sign=0-32 528 319 -39.62% BenchmarkCompressDeltaBinPackUint64/nBits=19,_sign=1-32 458 225 -50.93% BenchmarkCompressDeltaBinPackUint64/nBits=20,_sign=0-32 524 313 -40.36% BenchmarkCompressDeltaBinPackUint64/nBits=20,_sign=1-32 465 235 -49.39% BenchmarkCompressDeltaBinPackUint64/nBits=21,_sign=0-32 537 325 -39.44% BenchmarkCompressDeltaBinPackUint64/nBits=21,_sign=1-32 462 243 -47.37% BenchmarkCompressDeltaBinPackUint64/nBits=22,_sign=0-32 529 326 -38.45% BenchmarkCompressDeltaBinPackUint64/nBits=22,_sign=1-32 470 235 -49.95% BenchmarkCompressDeltaBinPackUint64/nBits=23,_sign=0-32 551 305 -44.70% BenchmarkCompressDeltaBinPackUint64/nBits=23,_sign=1-32 466 243 -47.88% BenchmarkCompressDeltaBinPackUint64/nBits=24,_sign=0-32 525 328 -37.60% BenchmarkCompressDeltaBinPackUint64/nBits=24,_sign=1-32 464 221 -52.32% BenchmarkCompressDeltaBinPackUint64/nBits=25,_sign=0-32 545 331 -39.26% BenchmarkCompressDeltaBinPackUint64/nBits=25,_sign=1-32 473 255 -45.98% BenchmarkCompressDeltaBinPackUint64/nBits=26,_sign=0-32 543 313 -42.28% BenchmarkCompressDeltaBinPackUint64/nBits=26,_sign=1-32 468 225 -51.83%
(benchmarks are a bit noisy on my machine, but trend should be clear)
Unroll
deltaBitLenAndSignUintXX
and lazy merge result for better CPU pipelining.