# Perf baseline — module-migration refactor The refactor promises "measured runtime wins, no hand-waved perf claims" and "screen-entry and frame-time no worse." This is the baseline to hold it to. Rerun the harness after every phase (R0 → R3c) and compare. ## Running it ``` # 1. start core against a library with real charts (see caveat below) CONFIG_DIR=… DLC_DIR=/path/to/songs PYTHONPATH=lib \ python3 -m uvicorn server:app --host 127.0.0.1 --port 8000 # 2. capture (maintainer/CI-only; uses the committed Playwright chromium) node scripts/perf-baseline.mjs --base http://127.0.0.1:8000 --n 60 --soak 30 ``` The script prints a markdown block; paste it under "Results" below with the date and the commit it was taken at. ## What it measures - **Server latency** — p50/p95/p99 over N requests for `/api/version`, `/api/plugins`, `/api/library`, `/api/library/artists`. - **Cold boot → interactive** — full page load to `networkidle`. - **JS heap** — `performance.memory.usedJSHeapSize` after load and after an idle soak (a leak signal across a session). - **Plugin-script shape** — how many plugin `