warp-pipe/perf/README.md
2026-01-31 11:21:28 -07:00

64 lines
1.6 KiB
Markdown

# 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` <node-name> (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