Skip to content

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

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages