Benchmarks¶
Absolute times vary by repo and machine. These hyperfine samples were captured in this repo.
For repeatable scaling measurements, build deterministic 10/50/100-branch
fixtures and benchmark a cold status --json with:
make benchmark-status
Results are written as Hyperfine JSON under target/benchmarks/. Override the
defaults with STAX_BENCH_STACK_SIZES="10 25", STAX_BENCH_RUNS=20, or
STAX_BENCH_BIN=/path/to/stax. Use global --trace on any normal command to
print each instrumented Git subprocess plus total Git and wall time:
st --trace status --json >/dev/null
| Command | stax | freephite | graphite |
|---|---|---|---|
ls |
11.2 ms | 2.413 s | 783.3 ms |
rs |
2.807 s | 6.769 s | — |
ls — mean execution time (lower is better)
stax ▏ 11.2 ms
graphite ████████████████ 783.3 ms
freephite ██████████████████████████████████████████████████ 2.413 s
┬─────────┬─────────┬─────────┬─────────┬─────────┬
0 500 1000 1500 2000 2500 ms
gt sync was not captured, so the rs row has no Graphite comparison.
Summary
st lswas ~214.76× faster thanfp lsst lswas ~69.72× faster thangt lsst rswas ~2.41× faster thanfp rs
ls¶
hyperfine 'stax ls' 'fp ls' 'gt ls' --warmup 5
Benchmark 1: stax ls
Time (mean ± σ): 11.2 ms ± 0.8 ms [User: 13.8 ms, System: 11.0 ms]
Range (min … max): 9.7 ms … 13.9 ms 174 runs
Benchmark 2: fp ls
Time (mean ± σ): 2.413 s ± 0.011 s [User: 0.406 s, System: 0.250 s]
Range (min … max): 2.396 s … 2.427 s 10 runs
Benchmark 3: gt ls
Time (mean ± σ): 783.3 ms ± 38.0 ms [User: 223.6 ms, System: 71.3 ms]
Range (min … max): 749.5 ms … 835.8 ms 10 runs
Summary
stax ls ran
69.72 ± 6.02 times faster than gt ls
214.76 ± 15.35 times faster than fp ls
rs¶
hyperfine 'stax rs' 'fp rs'
Benchmark 1: stax rs
Time (mean ± σ): 2.807 s ± 0.129 s [User: 0.365 s, System: 0.361 s]
Range (min … max): 2.543 s … 3.006 s 10 runs
Benchmark 2: fp rs
Time (mean ± σ): 6.769 s ± 0.717 s [User: 0.673 s, System: 0.981 s]
Range (min … max): 6.038 s … 7.824 s 10 runs
Summary
stax rs ran
2.41 ± 0.28 times faster than fp rs