1.2 KiB
1.2 KiB
Performance and Profiling
APOPHIS ships repeatable benchmark scripts for CLI startup and core hot paths.
Run Benchmarks
# Run everything
npm run benchmark
# CLI command startup/runtime
npm run benchmark:cli
# Formula, matcher, schema, and in-process qualify path
npm run benchmark:hot
Tune sample counts with environment variables:
BENCH_RUNS=12 BENCH_WARMUP=3 npm run benchmark:cli
# Increase inner-loop work for micro-benchmarks
BENCH_INNER_ITERS=5000 npm run benchmark:hot
# Benchmark with varying test counts
BENCH_RUNS=10,50,200 npm run benchmark:all
Capture CPU Profile for Qualify
npm run profile:qualify
npm run profile:qualify:quick
This writes Chrome-compatible CPU profiles to .profiles/qualify.cpuprofile and .profiles/qualify-quick.cpuprofile.
Notes
- CLI benchmark uses spawned
node dist/cli/index.jscommands so startup costs are included. - Hot path benchmark runs in-process for lower-noise function-level comparisons.
- Use fixed
--seedfor qualify benchmarks to keep runs deterministic. - Schema generation uses fixed defaults (string≤128, array≤10) regardless of run count.
You can override runs per preset:
apophis qualify --profile oauth-nightly --seed 42