The TSBS (Time Series Benchmark Suite, Timescale) cpu-only devops workload, ported to the L query language.
uv run --with numpy python gen_data.py # data/cpu.csv, 864k rows (~101 MB)
L_BIN=/path/to/l ./run.sh l # run the 15 query types
python3 compare.py # tabulate vs results/reference.outWith a reference q-language engine available, REF_BIN=/path/to/q ./run.sh ref|verify|all runs it on the identical workload and cross-checks row
counts and checksums (verify must print CHECKSUMS-IDENTICAL).
Platform: Apple M3 (NEON), macOS. L: release lv3-beta-20260705 (PGO),
run 2026-07-06. Reference: a commercial q-language engine, modern release,
measured 2026-06-12 on the same machine and dataset. Median of 3 runs:
| query | ref ms/q | l ms/q | ref/l |
|---|---|---|---|
| single-groupby-1-1-1 | 0.0242 | 0.0219 | 1.11x |
| single-groupby-1-1-12 | 0.1187 | 0.0828 | 1.43x |
| single-groupby-1-8-1 | 0.4250 | 0.0664 | 6.40x |
| single-groupby-5-1-1 | 0.0297 | 0.0258 | 1.15x |
| single-groupby-5-1-12 | 0.1969 | 0.1594 | 1.24x |
| single-groupby-5-8-1 | 0.4625 | 0.0969 | 4.77x |
| cpu-max-all-1 | 0.2156 | 0.1156 | 1.86x |
| cpu-max-all-8 | 1.4500 | 1.1250 | 1.29x |
| double-groupby-1 | 11.7000 | 5.4000 | 2.17x |
| double-groupby-5 | 13.9500 | 6.1000 | 2.29x |
| double-groupby-all | 16.8000 | 7.8500 | 2.14x |
| high-cpu-all | 1.8500 | 1.1500 | 1.61x |
| high-cpu-1 | 0.0648 | 0.0500 | 1.30x |
| lastpoint | 0.3242 | 0.0066 | 49.18x |
| groupby-orderby-limit | 0.0703 | 0.0336 | 2.09x |
geomean 2.35x in L's favor; L wins all 15 query types.
Method, compressed-execution validation, port notes, and caveats:
results/ANALYSIS.md.