Benchmarks - dathere/qsv GitHub Wiki
Benchmarks
qsv's benchmark suite runs 292 benchmarks on a 1,000,000-row × 41-column, 520 MB
sample of NYC's 311 data, timed with hyperfine
(2 warmups + 3 timed runs each). See
scripts/results/README.md
for the methodology and the raw CSVs.
[!NOTE] 25.0.0 — PGO is back. The Apple Silicon prebuilt is profile-guided again (#4757), and the median benchmark held level with 24.0.0.
sortcheck_unsortedis back to ~11 ms, andsplit_chunks_index_j1andstats_indexare back in their 23.0.1 range.extdedupandsnappy_compressdid not recover. They are still 19-31% slower than on 23.0.1. The big wins:writestatis 35-50x faster (#4747, which takes column types from the stats cache instead of Polars inference). Polars 2.0 (#4760) makespivotp~5x,joinp~2.6x and plainsqlp~2x faster. CSV → GeoJSONgeoconvertis ~3x faster now that it streams (#4800), andtemplateis 21% faster on MiniJinja 3.0 (#4785). On the other side,countandflattenslowed 13-17%. The 19 benchmarks new in suite 9.9.0 have no earlier baseline, so they don't appear in the change charts.The
sqlp_format_*,sqlp_lowmemory,sqlp_nooptimizationsandsqlp_tryparsedates*benchmarks have no 25.0.0 numbers: a schema cache leaked from another benchmark, so their runs timed a cached-schema read (#4812). Those rows were removed and will be back on the next run. Historical rows too fast to be real were removed for good: a full scan of the 520 MB file in under 0.1 s forsqlpandfrequency, or geocoding 1M rows in under 0.2 s (#4823).
Looking for the full per-command timing tables? See the classic tabular benchmarks at qsv.dathere.com. This page is the interactive, visual companion to it.
📊 Interactive Data Schematic
➡️ Open the interactive benchmark Data Schematic
The Data Schematic is rendered by qsv's own viz command and is fully interactive (hover for
values, zoom, download PNGs). It covers the with/without-index advantage, the sqlp
schema-cache knob, throughput across every release, deep-dives into four flagship
commands (stats, frequency, validate and moarstats) showing they grew features
without losing speed, and this release's biggest speedups.
Note: cross-version numbers are not strictly apples-to-apples — commands gain features over time. Treat the historical trend as a broad trajectory, not an exact speedup.
Last generated for qsv 25.0.0 (aarch64-apple-darwin). Regenerate with
python3 scripts/gen_benchmark_viz.py and copy this page's link — the Data Schematic itself
redeploys to GitHub Pages automatically on push to master.
