warp-pipe/perf
2026-01-31 11:21:28 -07:00
..
README.md Docs 2026-01-31 11:21:28 -07:00
warppipe_perf.cpp Milestone 5 2026-01-29 21:13:18 -07:00

Performance tests

Milestone 0 perf test instructions are tracked in docs/milestone-0.md.

Build

cmake -S . -B build
cmake --build build

Run

Usage:

./build/warppipe_perf --mode create-destroy|registry|links|policy|e2e [options]

Options:

  • --type sink|source|both (default sink)
  • --count N (default 200; per-type when --type both)
  • --events N (registry mode, default 100)
  • --links N (links mode, default 200)
  • --batch N (links mode batch size)
  • --rate N (default 48000)
  • --channels N (default 2)
  • --target (loopback target)

Create/destroy microbenchmark (milestone 0/2):

./build/warppipe_perf --mode create-destroy --count 200 --type sink
./build/warppipe_perf --mode create-destroy --count 100 --type both

Registry snapshot + add/remove events (milestone 1):

./build/warppipe_perf --mode registry --count 1000 --events 100

Link creation + removal (milestone 3):

./build/warppipe_perf --mode links --links 200
./build/warppipe_perf --mode links --links 200 --batch 50

Policy auto-routing (milestone 4):

./build/warppipe_perf --mode policy --count 200

End-to-end (milestone 5):

./build/warppipe_perf --mode e2e --count 200

Optional format and loopback:

./build/warppipe_perf --mode create-destroy --count 200 --type sink --rate 48000 --channels 2
./build/warppipe_perf --mode create-destroy --count 200 --type sink --target "some-node-name"

Planned coverage:

  • Microbenchmark: connect -> create N -> destroy N
  • Target: subsecond for N=200 on warm PipeWire connection