Skip to content

Benchmarks

ABCrimson edited this page Mar 7, 2026 · 2 revisions

Benchmarks

Performance baselines measured on Ubuntu 24.04, Node.js 25.8.0, with 3-run averaging via Math.sumPrecise.

Results

Benchmark Target Median P99
Search 10K items (TS scorer) < 16 ms 8.2 ms 14.5 ms
Search 100K items (WASM scorer) < 1 ms 0.7 ms 0.9 ms
Filter 10K items (incremental) < 2 ms 1.1 ms 1.8 ms
Filter 100K items (incremental) < 8 ms 4.5 ms 7.2 ms
State update cycle < 4 ms 2.3 ms 3.8 ms

Running Benchmarks

# Vitest bench mode
pnpm bench

# CI benchmarks (standalone, tinybench)
pnpm bench:ci

# Compare against baseline
pnpm bench:compare

Regression Detection

The CI runs pnpm bench:compare which:

  1. Reads benchmarks/baseline.json
  2. Runs each benchmark 3 times
  3. Averages results with Math.sumPrecise
  4. Compares against baseline thresholds:
    • 5% regression → warning
    • 15% regression → CI failure

Updating Baselines

After intentional performance changes, update the baseline:

pnpm bench:ci
# Copy results to baseline.json

Clone this wiki locally