Skip to content

feat(perf): add system performance test runner#1201

Merged
nicoloboschi merged 4 commits into
mainfrom
feat/system-perf-tests
Apr 22, 2026
Merged

feat(perf): add system performance test runner#1201
nicoloboschi merged 4 commits into
mainfrom
feat/system-perf-tests

Conversation

@nicoloboschi

Copy link
Copy Markdown
Collaborator

Summary

  • Add uv run perf-test command that orchestrates independent benchmark suites (retain throughput, recall latency) using mock LLM + pg0 for deterministic baselines
  • Thin orchestrator that wraps existing recall_perf.py building blocks (Zipf entity distribution, mock fact callbacks, async retain) — no duplicated benchmark logic
  • Add standalone perf-test.yml GH Actions workflow: daily schedule + manual dispatch with configurable scale and git ref
  • Fix _RRFReranker in recall_perf.py to include cross_encoder attribute required by engine's combined scoring path

Usage

uv run perf-test                        # all suites, small scale
uv run perf-test --suite retain         # single suite
uv run perf-test --scale medium         # larger scale
uv run perf-test --output results.json  # save JSON for comparison

Scales: tiny (20 items), small (200), medium (1K), large (5K)

Test plan

  • uv run perf-test --scale tiny passes locally with both suites
  • JSON output written and structured correctly
  • Summary table renders at end of run
  • Lint passes (ruff check)
  • Manual workflow dispatch on GH Actions

Add `uv run perf-test` command that orchestrates retain throughput and
recall latency benchmarks using mock LLM + pg0 for deterministic,
LLM-independent baselines. Wraps existing recall_perf/retain_perf
building blocks without duplicating benchmark logic.

Also fixes _RRFReranker in recall_perf.py to include the cross_encoder
attribute now required by the engine's combined scoring path.
Replace ad-hoc retain perf wrapper with the new system perf test
script in CI workflow and docs. The standalone retain_perf.py is still
available for ad-hoc document benchmarking.
@nicoloboschi
nicoloboschi merged commit 9c33a7c into main Apr 22, 2026
52 of 54 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant