Benchmarks
QuantWave publishes only measured numbers from the reproducible harness in benchmarks/. No hand-written throughput claims.
Last harness run: 2026-08-12T04:34:59.109501+00:00
Harness version: 2
Dataset: 1,000,000 rows, seed 1364656129
Host CPU: x86_64 · RAM: 15.6 GB · OS: Linux 6.17.0-1022-azure
Regenerate: python benchmarks/harness.py && python scripts/render_benchmarks.py
Memory Usage
Measured on 1,000,000 synthetic OHLCV rows (+ symbol column where noted).
OHLCV + Symbol
| Framework | Memory Usage | Footprint |
|---|---|---|
| QuantWave (Polars) | 44.82 MB | 1.0x |
| Pandas | 52.45 MB | 1.17x |
High-cardinality strings (Symbol column only)
| Framework | Memory | Footprint |
|---|---|---|
| QuantWave (Polars) | 6.68 MB | 1.0x |
| Pandas | 14.31 MB | 2.14x |
Speed & Throughput
Rust streaming throughput
- Rows: 1,000,000
- Source:
quantwave-core/benchmark_export
| Indicator | Mode | Time (ms) |
|---|---|---|
| SMA (20) | streaming | 5.3005 |
| RSI (14) | streaming | 0.0000 |
| SuperTrend (10,3) | streaming | 7.0151 |
Criterion HTML reports:
cargo bench -p quantwave-core --bench indicator_throughput(100,000 rows per case).
Python Comparisons
SMA batch throughput (SMA(20), 1000000 rows)
Correctness pre-check on 1k rows passed before timing.
| Library | Time (ms) |
|---|---|
| QuantWave (.ta) | 9.0211 |
| Polars rolling_mean | 8.8490 |
| Pandas rolling | 15.9358 |
| TA-Lib | not installed |
Library versions: numpy 2.5.2, pandas 3.0.5, pandas_ta not_installed, polars 1.43.2, quantwave 0.7.0, talib not_installed
Streaming Latency
Per-tick streaming latency (10,000 samples)
Source: per_tick_instrumented — real per-tick instrumentation, not batch ms relabeled.
| Indicator | Mean (ns) | P99 (ns) |
|---|---|---|
| SMA (20) | 35.6 | 41.0 |
| RSI (14) | 32.2 | 40.0 |
Methodology
- Data: deterministic synthetic OHLCV from
benchmarks/data.py(fixed seed, committed generator). - Rust:
cargo run -p quantwave-core --release --bin benchmark_export+ Criterion benches (cargo bench -p quantwave-core --bench indicator_throughput). The head-to-head against thetalib-rsoracle lives incargo bench -p quantwave-core --bench talib_comparison(a bench, not a bin, sotalib-rsstays out of the shipped dependency graph). - Python:
benchmarks/python_comparisons.py— correctness pre-check on 1k rows, thentime.perf_countertimings. - Docs:
scripts/render_benchmarks.pyrenders this page frombenchmarks/results/latest.jsononly. - CI:
scripts/check_benchmark_claims.pyfails on orphan performance numbers in README/docs.
Page rendered from JSON — edit benchmarks/results/latest.json via the harness, not tables here.