-
Notifications
You must be signed in to change notification settings - Fork 2
License
jpountz/decode-128-ints-benchmark
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
What is the fastest way to read 128 packed integers from a ByteBuffer? * `readLongs` just reads 2*bitsPerValue longs from the ByteBuffer, it serves as a baseline. * `decodeNaiveFromBytes` reads a byte[] and decodes from it. This is what the current Lucene codec does. * `decodeNaiveFromLongs` decodes from longs on the fly. * `decodeSimpleSIMD` is a simple implementation that relies on how Java's C2 compiler recognizes some patterns and uses SIMD instructions. * `decodeSIMD` is a more complex implementation that both relies on the C2 compiler and encodes 8 bytes, 4 shorts or 2 ints in a long in order to decompress multiple values at once. Benchmark (bitsPerValue) (byteOrder) Mode Cnt Score Error Units PackedIntsDecodeBenchmark.decodeNaiveFromBytes 1 LE thrpt 5 12.912 ± 0.393 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 1 BE thrpt 5 12.862 ± 0.395 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 2 LE thrpt 5 13.040 ± 1.162 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 2 BE thrpt 5 13.027 ± 0.270 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 3 LE thrpt 5 12.409 ± 0.637 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 3 BE thrpt 5 12.268 ± 0.947 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 4 LE thrpt 5 14.177 ± 2.263 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 4 BE thrpt 5 11.457 ± 0.150 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 5 LE thrpt 5 10.988 ± 1.179 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 5 BE thrpt 5 11.226 ± 0.088 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 6 LE thrpt 5 9.791 ± 0.305 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 6 BE thrpt 5 9.403 ± 3.598 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 7 LE thrpt 5 10.256 ± 0.211 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 7 BE thrpt 5 10.314 ± 0.382 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 8 LE thrpt 5 16.516 ± 0.380 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 8 BE thrpt 5 16.375 ± 0.427 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 9 LE thrpt 5 9.067 ± 0.066 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 9 BE thrpt 5 9.078 ± 0.178 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 10 LE thrpt 5 8.913 ± 0.074 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 10 BE thrpt 5 8.893 ± 0.101 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 11 LE thrpt 5 7.908 ± 0.118 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 11 BE thrpt 5 7.864 ± 0.097 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 12 LE thrpt 5 9.220 ± 0.103 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 12 BE thrpt 5 9.186 ± 0.241 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 13 LE thrpt 5 7.119 ± 0.071 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 13 BE thrpt 5 7.066 ± 0.059 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 14 LE thrpt 5 12.483 ± 0.171 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 14 BE thrpt 5 12.473 ± 0.117 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 15 LE thrpt 5 6.202 ± 0.192 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 15 BE thrpt 5 6.187 ± 0.399 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 16 LE thrpt 5 12.798 ± 0.249 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromBytes 16 BE thrpt 5 12.987 ± 0.208 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 1 LE thrpt 5 7.248 ± 0.096 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 1 BE thrpt 5 7.292 ± 0.114 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 2 LE thrpt 5 8.923 ± 0.099 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 2 BE thrpt 5 8.899 ± 0.028 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 3 LE thrpt 5 9.192 ± 0.082 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 3 BE thrpt 5 9.090 ± 0.066 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 4 LE thrpt 5 7.947 ± 0.039 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 4 BE thrpt 5 7.809 ± 0.298 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 5 LE thrpt 5 8.342 ± 0.568 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 5 BE thrpt 5 8.259 ± 0.572 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 6 LE thrpt 5 15.594 ± 0.149 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 6 BE thrpt 5 14.012 ± 0.160 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 7 LE thrpt 5 12.686 ± 0.271 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 7 BE thrpt 5 12.806 ± 0.160 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 8 LE thrpt 5 13.571 ± 0.135 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 8 BE thrpt 5 13.312 ± 0.110 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 9 LE thrpt 5 11.812 ± 0.108 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 9 BE thrpt 5 12.874 ± 0.168 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 10 LE thrpt 5 12.882 ± 0.114 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 10 BE thrpt 5 12.142 ± 0.091 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 11 LE thrpt 5 12.302 ± 0.111 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 11 BE thrpt 5 10.762 ± 0.250 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 12 LE thrpt 5 12.505 ± 0.070 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 12 BE thrpt 5 12.149 ± 0.083 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 13 LE thrpt 5 11.159 ± 0.341 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 13 BE thrpt 5 10.395 ± 0.222 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 14 LE thrpt 5 11.004 ± 0.058 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 14 BE thrpt 5 10.312 ± 0.369 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 15 LE thrpt 5 11.236 ± 0.117 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 15 BE thrpt 5 9.792 ± 0.202 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 16 LE thrpt 5 10.607 ± 0.105 ops/us PackedIntsDecodeBenchmark.decodeNaiveFromLongs 16 BE thrpt 5 10.340 ± 0.070 ops/us PackedIntsDecodeBenchmark.decodeSIMD 1 LE thrpt 5 20.925 ± 0.368 ops/us PackedIntsDecodeBenchmark.decodeSIMD 1 BE thrpt 5 13.396 ± 0.485 ops/us PackedIntsDecodeBenchmark.decodeSIMD 2 LE thrpt 5 20.628 ± 0.494 ops/us PackedIntsDecodeBenchmark.decodeSIMD 2 BE thrpt 5 13.584 ± 0.194 ops/us PackedIntsDecodeBenchmark.decodeSIMD 3 LE thrpt 5 19.932 ± 1.609 ops/us PackedIntsDecodeBenchmark.decodeSIMD 3 BE thrpt 5 13.296 ± 0.095 ops/us PackedIntsDecodeBenchmark.decodeSIMD 4 LE thrpt 5 21.065 ± 0.767 ops/us PackedIntsDecodeBenchmark.decodeSIMD 4 BE thrpt 5 13.557 ± 0.051 ops/us PackedIntsDecodeBenchmark.decodeSIMD 5 LE thrpt 5 19.630 ± 0.067 ops/us PackedIntsDecodeBenchmark.decodeSIMD 5 BE thrpt 5 12.916 ± 0.186 ops/us PackedIntsDecodeBenchmark.decodeSIMD 6 LE thrpt 5 20.253 ± 0.701 ops/us PackedIntsDecodeBenchmark.decodeSIMD 6 BE thrpt 5 12.820 ± 0.048 ops/us PackedIntsDecodeBenchmark.decodeSIMD 7 LE thrpt 5 18.944 ± 0.160 ops/us PackedIntsDecodeBenchmark.decodeSIMD 7 BE thrpt 5 12.562 ± 0.128 ops/us PackedIntsDecodeBenchmark.decodeSIMD 8 LE thrpt 5 22.778 ± 2.023 ops/us PackedIntsDecodeBenchmark.decodeSIMD 8 BE thrpt 5 13.658 ± 0.158 ops/us PackedIntsDecodeBenchmark.decodeSIMD 9 LE thrpt 5 18.527 ± 0.169 ops/us PackedIntsDecodeBenchmark.decodeSIMD 9 BE thrpt 5 12.045 ± 0.111 ops/us PackedIntsDecodeBenchmark.decodeSIMD 10 LE thrpt 5 16.610 ± 0.997 ops/us PackedIntsDecodeBenchmark.decodeSIMD 10 BE thrpt 5 11.208 ± 0.087 ops/us PackedIntsDecodeBenchmark.decodeSIMD 11 LE thrpt 5 17.961 ± 0.080 ops/us PackedIntsDecodeBenchmark.decodeSIMD 11 BE thrpt 5 11.594 ± 0.084 ops/us PackedIntsDecodeBenchmark.decodeSIMD 12 LE thrpt 5 16.980 ± 2.372 ops/us PackedIntsDecodeBenchmark.decodeSIMD 12 BE thrpt 5 11.135 ± 0.050 ops/us PackedIntsDecodeBenchmark.decodeSIMD 13 LE thrpt 5 17.592 ± 0.269 ops/us PackedIntsDecodeBenchmark.decodeSIMD 13 BE thrpt 5 11.132 ± 0.227 ops/us PackedIntsDecodeBenchmark.decodeSIMD 14 LE thrpt 5 16.964 ± 0.423 ops/us PackedIntsDecodeBenchmark.decodeSIMD 14 BE thrpt 5 10.953 ± 0.326 ops/us PackedIntsDecodeBenchmark.decodeSIMD 15 LE thrpt 5 17.972 ± 0.572 ops/us PackedIntsDecodeBenchmark.decodeSIMD 15 BE thrpt 5 10.872 ± 0.150 ops/us PackedIntsDecodeBenchmark.decodeSIMD 16 LE thrpt 5 24.152 ± 0.213 ops/us PackedIntsDecodeBenchmark.decodeSIMD 16 BE thrpt 5 12.984 ± 0.348 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 1 LE thrpt 5 14.567 ± 0.714 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 1 BE thrpt 5 10.541 ± 0.079 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 2 LE thrpt 5 15.395 ± 0.687 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 2 BE thrpt 5 11.142 ± 0.052 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 3 LE thrpt 5 15.802 ± 0.623 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 3 BE thrpt 5 10.656 ± 0.278 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 4 LE thrpt 5 17.732 ± 0.276 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 4 BE thrpt 5 11.289 ± 0.209 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 5 LE thrpt 5 16.230 ± 0.389 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 5 BE thrpt 5 10.216 ± 0.184 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 6 LE thrpt 5 16.478 ± 0.682 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 6 BE thrpt 5 10.379 ± 0.157 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 8 LE thrpt 5 18.222 ± 0.388 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 8 BE thrpt 5 11.153 ± 0.619 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 10 LE thrpt 5 15.138 ± 0.321 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 10 BE thrpt 5 9.384 ± 0.671 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 16 LE thrpt 5 20.776 ± 0.397 ops/us PackedIntsDecodeBenchmark.decodeSimpleSIMD 16 BE thrpt 5 10.199 ± 0.146 ops/us PackedIntsDecodeBenchmark.readLongs 1 LE thrpt 5 30.220 ± 0.652 ops/us PackedIntsDecodeBenchmark.readLongs 1 BE thrpt 5 16.324 ± 0.226 ops/us PackedIntsDecodeBenchmark.readLongs 2 LE thrpt 5 30.952 ± 0.329 ops/us PackedIntsDecodeBenchmark.readLongs 2 BE thrpt 5 16.492 ± 0.397 ops/us PackedIntsDecodeBenchmark.readLongs 3 LE thrpt 5 30.156 ± 0.979 ops/us PackedIntsDecodeBenchmark.readLongs 3 BE thrpt 5 16.273 ± 0.441 ops/us PackedIntsDecodeBenchmark.readLongs 4 LE thrpt 5 29.925 ± 0.718 ops/us PackedIntsDecodeBenchmark.readLongs 4 BE thrpt 5 15.930 ± 0.350 ops/us PackedIntsDecodeBenchmark.readLongs 5 LE thrpt 5 29.773 ± 0.979 ops/us PackedIntsDecodeBenchmark.readLongs 5 BE thrpt 5 15.775 ± 0.257 ops/us PackedIntsDecodeBenchmark.readLongs 6 LE thrpt 5 29.591 ± 1.285 ops/us PackedIntsDecodeBenchmark.readLongs 6 BE thrpt 5 15.732 ± 0.226 ops/us PackedIntsDecodeBenchmark.readLongs 7 LE thrpt 5 29.708 ± 0.909 ops/us PackedIntsDecodeBenchmark.readLongs 7 BE thrpt 5 15.433 ± 0.562 ops/us PackedIntsDecodeBenchmark.readLongs 8 LE thrpt 5 29.828 ± 0.689 ops/us PackedIntsDecodeBenchmark.readLongs 8 BE thrpt 5 15.390 ± 0.188 ops/us PackedIntsDecodeBenchmark.readLongs 9 LE thrpt 5 29.127 ± 0.309 ops/us PackedIntsDecodeBenchmark.readLongs 9 BE thrpt 5 15.180 ± 0.199 ops/us PackedIntsDecodeBenchmark.readLongs 10 LE thrpt 5 29.085 ± 0.538 ops/us PackedIntsDecodeBenchmark.readLongs 10 BE thrpt 5 14.887 ± 1.687 ops/us PackedIntsDecodeBenchmark.readLongs 11 LE thrpt 5 28.904 ± 0.329 ops/us PackedIntsDecodeBenchmark.readLongs 11 BE thrpt 5 14.936 ± 0.119 ops/us PackedIntsDecodeBenchmark.readLongs 12 LE thrpt 5 29.025 ± 0.299 ops/us PackedIntsDecodeBenchmark.readLongs 12 BE thrpt 5 14.685 ± 0.154 ops/us PackedIntsDecodeBenchmark.readLongs 13 LE thrpt 5 28.963 ± 0.244 ops/us PackedIntsDecodeBenchmark.readLongs 13 BE thrpt 5 14.569 ± 0.100 ops/us PackedIntsDecodeBenchmark.readLongs 14 LE thrpt 5 28.584 ± 1.409 ops/us PackedIntsDecodeBenchmark.readLongs 14 BE thrpt 5 14.340 ± 0.594 ops/us PackedIntsDecodeBenchmark.readLongs 15 LE thrpt 5 28.744 ± 0.314 ops/us PackedIntsDecodeBenchmark.readLongs 15 BE thrpt 5 14.222 ± 0.105 ops/us PackedIntsDecodeBenchmark.readLongs 16 LE thrpt 5 26.638 ± 0.452 ops/us PackedIntsDecodeBenchmark.readLongs 16 BE thrpt 5 13.906 ± 0.604 ops/us Now what about decoding and computing a prefix sum of the decoded values? * `naiveDecodeAndPrefixSum` uses the fastest SIMD decoding from above and then runs a prefix sum with a for loop * `naiveDecodeAndUnrolledPrefixSum` uses the fastest SIMD decoding from above and then runs an unrolled prefix sum * `mergeDecodeAndPrefixSum` runs the prefix sum within the decoding logic, when longs are still storing 2 packed integers Benchmark (bitsPerValue) (byteOrder) Mode Cnt Score Error Units PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 1 LE thrpt 5 13.666 ± 0.169 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 1 BE thrpt 5 10.393 ± 0.092 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 2 LE thrpt 5 13.725 ± 0.347 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 2 BE thrpt 5 10.348 ± 0.706 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 3 LE thrpt 5 13.526 ± 0.068 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 3 BE thrpt 5 10.132 ± 0.576 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 4 LE thrpt 5 13.916 ± 0.167 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 4 BE thrpt 5 10.294 ± 0.101 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 5 LE thrpt 5 13.467 ± 0.219 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 5 BE thrpt 5 10.009 ± 0.106 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 6 LE thrpt 5 13.171 ± 0.142 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 6 BE thrpt 5 9.686 ± 1.134 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 7 LE thrpt 5 13.147 ± 0.101 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 7 BE thrpt 5 9.730 ± 0.090 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 8 LE thrpt 5 13.941 ± 0.179 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 8 BE thrpt 5 10.497 ± 0.027 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 9 LE thrpt 5 12.419 ± 0.225 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 9 BE thrpt 5 9.032 ± 0.113 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 10 LE thrpt 5 11.492 ± 0.850 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 10 BE thrpt 5 8.643 ± 0.139 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 11 LE thrpt 5 11.742 ± 0.524 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 11 BE thrpt 5 9.043 ± 0.160 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 12 LE thrpt 5 12.243 ± 0.181 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 12 BE thrpt 5 8.888 ± 0.217 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 13 LE thrpt 5 11.515 ± 0.481 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 13 BE thrpt 5 8.822 ± 0.230 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 14 LE thrpt 5 11.547 ± 1.114 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 14 BE thrpt 5 8.611 ± 0.147 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 15 LE thrpt 5 12.200 ± 0.131 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 15 BE thrpt 5 8.627 ± 0.118 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 16 LE thrpt 5 15.135 ± 0.271 ops/us PackedIntsDeltaDecodeBenchmark.mergeDecodeAndPrefixSum 16 BE thrpt 5 10.038 ± 0.063 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 1 LE thrpt 5 10.027 ± 0.047 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 1 BE thrpt 5 8.210 ± 0.125 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 2 LE thrpt 5 10.168 ± 0.128 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 2 BE thrpt 5 8.362 ± 0.131 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 3 LE thrpt 5 9.969 ± 0.347 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 3 BE thrpt 5 8.156 ± 0.288 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 4 LE thrpt 5 10.172 ± 0.324 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 4 BE thrpt 5 8.343 ± 0.057 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 5 LE thrpt 5 9.850 ± 0.200 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 5 BE thrpt 5 8.009 ± 0.087 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 6 LE thrpt 5 10.014 ± 0.182 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 6 BE thrpt 5 7.978 ± 0.075 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 7 LE thrpt 5 9.834 ± 0.076 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 7 BE thrpt 5 7.828 ± 0.056 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 8 LE thrpt 5 10.504 ± 0.224 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 8 BE thrpt 5 8.380 ± 0.408 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 9 LE thrpt 5 9.477 ± 0.131 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 9 BE thrpt 5 7.509 ± 0.071 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 10 LE thrpt 5 9.026 ± 1.915 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 10 BE thrpt 5 7.212 ± 0.034 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 11 LE thrpt 5 9.402 ± 0.051 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 11 BE thrpt 5 7.449 ± 0.148 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 12 LE thrpt 5 9.417 ± 0.055 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 12 BE thrpt 5 7.228 ± 0.035 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 13 LE thrpt 5 9.328 ± 0.102 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 13 BE thrpt 5 7.289 ± 0.043 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 14 LE thrpt 5 9.394 ± 0.127 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 14 BE thrpt 5 7.216 ± 0.106 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 15 LE thrpt 5 9.299 ± 0.127 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 15 BE thrpt 5 7.141 ± 0.042 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 16 LE thrpt 5 10.701 ± 0.123 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndPrefixSum 16 BE thrpt 5 8.282 ± 0.092 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 1 LE thrpt 5 12.181 ± 0.124 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 1 BE thrpt 5 9.752 ± 0.280 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 2 LE thrpt 5 12.341 ± 0.141 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 2 BE thrpt 5 9.806 ± 0.203 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 3 LE thrpt 5 12.221 ± 0.110 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 3 BE thrpt 5 9.593 ± 0.054 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 4 LE thrpt 5 12.557 ± 0.165 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 4 BE thrpt 5 9.808 ± 0.077 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 5 LE thrpt 5 12.112 ± 0.162 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 5 BE thrpt 5 9.402 ± 0.117 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 6 LE thrpt 5 12.095 ± 0.228 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 6 BE thrpt 5 9.291 ± 0.203 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 7 LE thrpt 5 11.803 ± 0.080 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 7 BE thrpt 5 9.419 ± 0.072 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 8 LE thrpt 5 12.861 ± 0.135 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 8 BE thrpt 5 9.786 ± 0.234 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 9 LE thrpt 5 11.573 ± 0.136 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 9 BE thrpt 5 8.700 ± 0.094 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 10 LE thrpt 5 11.113 ± 0.205 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 10 BE thrpt 5 8.315 ± 0.025 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 11 LE thrpt 5 11.300 ± 0.125 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 11 BE thrpt 5 8.424 ± 0.182 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 12 LE thrpt 5 11.385 ± 0.081 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 12 BE thrpt 5 8.370 ± 0.029 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 13 LE thrpt 5 10.926 ± 0.114 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 13 BE thrpt 5 8.444 ± 0.083 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 14 LE thrpt 5 11.164 ± 0.078 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 14 BE thrpt 5 8.106 ± 0.020 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 15 LE thrpt 5 11.026 ± 0.045 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 15 BE thrpt 5 8.233 ± 0.099 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 16 LE thrpt 5 13.869 ± 0.079 ops/us PackedIntsDeltaDecodeBenchmark.naiveDecodeAndUnrolledPrefixSum 16 BE thrpt 5 9.722 ± 0.045 ops/us
About
No description, website, or topics provided.
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published