Skip to content

perf(fsst): gather sparse takes from small arrays with large payloads - #10509

Merged
blaginin merged 7 commits into
developfrom
db/fsst-byte-aware-take
Oct 16, 2026
Merged

blaginin merged 7 commits into
developfrom
db/fsst-byte-aware-take

Merge develop for FSST benchmark baseline

75eaafa
Select commit
Loading
Failed to load commit list.
CodSpeed / CodSpeed Performance Analysis succeeded Oct 16, 2026 in 0s

Performance Gate Passed

⚠️ Unknown Walltime execution environment detected

Using the Walltime instrument on standard Hosted Runners will lead to inconsistent data.

For the most accurate results, we recommend using CodSpeed Macro Runners: bare-metal machines fine-tuned for performance measurement consistency.

⚠️ 1 benchmark measured no execution time

Nothing ran under measurement, usually because the compiler removed the code under test. This result is not comparable, so it counts as unchanged.

Preventing compiler optimizations

⚠️ 16 benchmarks spent significant time in system calls

System calls cannot be consistently instrumented, so they are not included in the measure, which understates the real cost. Please switch to the Walltime instrument to accurately measure system calls.

Measurement and system calls

ℹ️ 40 benchmarks have no flame graph

The flamegraph could not be generated because we failed to resolve the symbols in the profiling trace. This happens when we fail to harvest information about language frames.

⚠️ Different runtime environments detected

Some benchmarks with significant performance changes were compared across different runtime environments,
which may affect the accuracy of the results.

Open the report in CodSpeed to investigate

⚡ 39 improved benchmarks
✅ 2348 untouched benchmarks
⏩ 12 skipped benchmarks1

Performance Changes

Mode Benchmark BASE HEAD Efficiency
⚡ Simulation take[(1000, 64, 1)] 904 µs 108.8 µs ×8.3
⚡ Simulation take[(256, 64, 1)] 883.5 µs 111.4 µs ×7.9
⚡ Simulation uneven_take[(16, 16384, Short)] 753 µs 107.5 µs ×7
⚡ Simulation take[(16, 64, 1)] 859 µs 164 µs ×5.2
⚡ Simulation take[(1000, 32, 1)] 514.6 µs 107.2 µs ×4.8
⚡ Simulation take[(256, 32, 1)] 471.4 µs 110.2 µs ×4.3
⚡ Simulation take[(16, 32, 1)] 463.4 µs 136.3 µs ×3.4
⚡ Simulation take[(16, 64, 3)] 859 µs 273.7 µs ×3.1
⚡ Simulation take[(1000, 16, 1)] 316.2 µs 108.1 µs ×2.9
⚡ Simulation take[(256, 64, 63)] 885.7 µs 338.2 µs ×2.6
⚡ Simulation take[(256, 16, 1)] 277.3 µs 109 µs ×2.5
⚡ Simulation take[(1000, 64, 249)] 912.8 µs 378.9 µs ×2.4
⚡ Simulation take[(16, 32, 3)] 463.3 µs 193.1 µs ×2.4
⚡ Simulation uneven_take[(16, 4096, Short)] 253.4 µs 107.4 µs ×2.4
⚡ Simulation take[(16, 16, 1)] 263.9 µs 121.8 µs ×2.2
⚡ Simulation take[(256, 32, 63)] 473.4 µs 231.2 µs ×2
⚡ Simulation take[(1000, 8, 1)] 212 µs 106.8 µs +98.45%
⚡ Simulation take[(1000, 32, 249)] 523.2 µs 272.9 µs +91.77%
⚡ Simulation take[(16, 16, 3)] 263.7 µs 150 µs +75.84%
⚡ Simulation uneven_take[(1, 32768, Short)] 184 µs 107.1 µs +71.86%
... ... ... ... ... ...

ℹ️ Only the first 20 benchmarks are displayed. Go to the app to view all benchmarks.

Tip

Curious why performance improved? Comment @codspeedbot explain why performance improved on this PR, or directly use the CodSpeed MCP with your agent.


Comparing db/fsst-byte-aware-take (75eaafa) with develop (e8167ae)

Open in CodSpeed

Footnotes

  1. 12 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. ↩