Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: consume right_parts buffer in alp-rd decompression (#1785)
This slightly improves decompression throughput for larger arrays. Passing in an owned buffer is insufficient, (see the benchmarks for "passing a BufferMut"), we must actually mutate the array in-place. develop ``` alp_compress fastest │ slowest │ median │ mean │ samples │ iters ╰─ decompress_rd │ │ │ │ │ ├─ f32 │ │ │ │ │ │ ├─ 100000 59.62 µs │ 171.8 µs │ 65.7 µs │ 65.89 µs │ 100 │ 100 │ ├─ 1000000 747.4 µs │ 1.116 ms │ 788.4 µs │ 809.7 µs │ 100 │ 100 │ ╰─ 10000000 9.708 ms │ 14.55 ms │ 9.948 ms │ 10.05 ms │ 100 │ 100 ╰─ f64 │ │ │ │ │ ├─ 100000 67.24 µs │ 137.2 µs │ 67.49 µs │ 69.21 µs │ 100 │ 100 ├─ 1000000 1.168 ms │ 1.906 ms │ 1.272 ms │ 1.337 ms │ 100 │ 100 ╰─ 10000000 18.65 ms │ 23.48 ms │ 19.24 ms │ 19.8 ms │ 100 │ 100 ``` passing a BufferMut ``` alp_compress fastest │ slowest │ median │ mean │ samples │ iters ╰─ decompress_rd │ │ │ │ │ ├─ f32 │ │ │ │ │ │ ├─ 100000 60.16 µs │ 94.2 µs │ 66.81 µs │ 68.19 µs │ 100 │ 100 │ ├─ 1000000 738.8 µs │ 1.189 ms │ 765.6 µs │ 793.3 µs │ 100 │ 100 │ ╰─ 10000000 9.681 ms │ 10.89 ms │ 9.822 ms │ 9.869 ms │ 100 │ 100 ╰─ f64 │ │ │ │ │ ├─ 100000 67.54 µs │ 109.9 µs │ 77.41 µs │ 79.14 µs │ 100 │ 100 ├─ 1000000 1.209 ms │ 1.804 ms │ 1.293 ms │ 1.328 ms │ 100 │ 100 ╰─ 10000000 18.58 ms │ 25.08 ms │ 19.87 ms │ 20.22 ms │ 100 │ 100 ``` using for_each_with_index ``` alp_compress fastest │ slowest │ median │ mean │ samples │ iters ╰─ decompress_rd │ │ │ │ │ ├─ f32 │ │ │ │ │ │ ├─ 100000 46.62 µs │ 163.3 µs │ 50.16 µs │ 50.75 µs │ 100 │ 100 │ ├─ 1000000 628.6 µs │ 828.2 µs │ 675.2 µs │ 688.2 µs │ 100 │ 100 │ ╰─ 10000000 8.016 ms │ 9.968 ms │ 8.114 ms │ 8.175 ms │ 100 │ 100 ╰─ f64 │ │ │ │ │ ├─ 100000 63.87 µs │ 86.29 µs │ 68.66 µs │ 68.3 µs │ 100 │ 100 ├─ 1000000 934.4 µs │ 2.173 ms │ 1.085 ms │ 1.09 ms │ 100 │ 100 ╰─ 10000000 14.18 ms │ 17.89 ms │ 14.52 ms │ 14.78 ms │ 100 │ 100 ```
- Loading branch information