Skip to content

jpountz/decode-128-ints-benchmark

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

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

No packages published

Languages