1.3 KiB
1.3 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 generation profile matrix
BENCH_GENERATION_PROFILES=quick,standard,thorough 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. - Generation now adapts to depth:
quickfavors bounded payload generation speed,thoroughkeeps broader generation.
You can override generation per run:
apophis qualify --profile oauth-nightly --generation-profile quick --seed 42