Add BoolArray::trim_bits, wire it to Canonical::compact that prunes unused bytes in the underlying buffer - #9374
Add BoolArray::trim_bits, wire it to Canonical::compact that prunes unused bytes in the underlying buffer#9374robert3005 wants to merge 2 commits into
Conversation
…nused bytes in the underlying buffer Signed-off-by: Robert Kruszewski <github@robertk.io>
Signed-off-by: Robert Kruszewski <github@robertk.io>
Merging this PR will degrade performance by 9.36%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | Simulation | decompress[u64, (10000, 4)] |
311.4 µs | 402.3 µs | -22.59% |
| ❌ | Simulation | chunked_canonicalize_into[(1000, 50, 8, 4)] |
12.9 ms | 15.1 ms | -14.08% |
| ❌ | Simulation | chunked_canonicalize_into[(1000, 50, 8, 64)] |
15.3 ms | 17.7 ms | -13.44% |
| ❌ | Simulation | chunked_into_canonical[(1000, 50, 8, 64)] |
17.1 ms | 19.5 ms | -12.58% |
| ❌ | Simulation | search_index_in_range_chunked |
5.3 ms | 6.1 ms | -12.47% |
| ❌ | Simulation | chunked_canonicalize_into[(1000, 50, 8, 16)] |
14 ms | 16 ms | -12.07% |
| ❌ | Simulation | chunked_into_canonical[(1000, 50, 8, 4)] |
14.5 ms | 16.4 ms | -11.54% |
| ❌ | Simulation | chunked_into_canonical[(1000, 50, 8, 16)] |
15.6 ms | 17.5 ms | -10.74% |
| ❌ | Simulation | decompress[u64, (1000, 16)] |
65.1 µs | 72.8 µs | -10.59% |
| ⚡ | Simulation | take[core/shuffled/primitive/nonnull/chunks=1024/indices=10000] |
14.6 ms | 13.1 ms | +11.61% |
| ⚡ | Simulation | compress_fsst[(10000, 64, 8)] |
10.8 ms | 9.7 ms | +11.12% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing rk/boolcompact (0baea1a) with develop (2d5b7e5)2
Footnotes
-
89 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
-
No successful run was found on
develop(a0a0b20) during the generation of this report, so 2d5b7e5 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩
This is a cheap operation but not as cheap as to run it on construction of BoolArray.
Alternative to #8908