Files
apophis-fastify/docs/performance.md
T

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.js commands so startup costs are included.
  • Hot path benchmark runs in-process for lower-noise function-level comparisons.
  • Use fixed --seed for qualify benchmarks to keep runs deterministic.
  • Generation now adapts to depth: quick favors bounded payload generation speed, thorough keeps broader generation.

You can override generation per run:

apophis qualify --profile oauth-nightly --generation-profile quick --seed 42