59 lines
2.0 KiB
Markdown
59 lines
2.0 KiB
Markdown
# Benchmarks en kwaliteitsrapportage (VR-116)
|
|
|
|
## Doel
|
|
|
|
VR-116 levert een reproduceerbaar benchmarkpakket voor:
|
|
|
|
- parservelddekking;
|
|
- deduplicatie-kwaliteit (precision/recall, false merges/missed merges);
|
|
- rankingstabiliteit (top-N churn, onbekende-data ratio);
|
|
- performance (p50/p95, querycount en memory peak).
|
|
|
|
De CLI werkt zonder live netwerk met de synthetische fixtures uit `fixtures/benchmark/`.
|
|
|
|
## Datasets
|
|
|
|
`fixtures/benchmark/quality_benchmark.json`
|
|
|
|
- bevat parsercases met verwachte parserkey/version en verwachte minima;
|
|
- bevat dedupe seeds en querycases met verwachte matchlabels;
|
|
- bevat geen echte broninhoud of persoonlijke gegevens.
|
|
|
|
## CLI
|
|
|
|
```bash
|
|
uv run python scripts/benchmark.py --quick
|
|
uv run python scripts/benchmark.py --jobs 25000 --top-n 25
|
|
uv run python scripts/benchmark.py --jobs 25000 --json --top-n 25
|
|
uv run python scripts/benchmark.py --skip-performance --quick
|
|
```
|
|
|
|
## Rapportformat
|
|
|
|
De JSON-rapportage bevat minimaal:
|
|
|
|
- `parser`: dekking en onbekend-aandeel;
|
|
- `dedupe`: precision, recall, false merges, missed merges;
|
|
- `ranking`: top-N churn en unknown-data ratio;
|
|
- `performance`: p50, p95, querycount, peak memory, totale duur;
|
|
- `nfr_007`: gegraveerde metingstatus/passing van p95 < 1000 ms.
|
|
|
|
## Drempels en interpretatie
|
|
|
|
- Parser: standaard doel `coverage_ratio >= 0.90`.
|
|
- Dedupe: standaard doel `precision >= 0.90` en `recall >= 0.90`.
|
|
- Ranking: standaard doel `churn <= 0.35`.
|
|
- NFR-007: enkel als `nfr_007.measured == true` wordt de p95-check als afgewerkt beoordeeld.
|
|
|
|
## Uitvoeringsmodus
|
|
|
|
- `--quick`: voert parser/dedupe/ranking uit met 250 ingestaste jobs.
|
|
- standaardmodus: voert ook een performancepass uit op 25.000 jobs (mits runtime toelaatbaar).
|
|
- `--skip-performance`: nuttig voor CI/quickvalidatie zonder de lange performance-run.
|
|
|
|
## Afwijkingen
|
|
|
|
Wanneer p95 of dedupe niet voldoet, rapporteert het script een status `failed` met detaildata per case.
|
|
Die output is bedoeld als regressiebasis voor foutanalyse en threshold-sturing.
|
|
|