Co to znamená
Vše kanonické se sestaví jednou, při startu procesu: repozitář se objeví, index se sestaví, registr se složí a zvaliduje, výpisy MCP a dokument OpenAPI se připraví při prvním použití a uchovají. Požadavek věci vyhledá a spustí handler. Proces počítá vlastní práci a odpovídá počty přes každý transport jako perf.counters; test pošle stovky požadavků a vyžaduje nezměněné startovací čítače, takže refaktoring, který potichu přestavuje registr při každém požadavku, selže dříve, než kdokoli změří latenci.
Princip
apps/majordomus-cli/src/perf.rs drží čítače platné pro celý proces (skeny repozitáře, sestavení indexu, sestavení registru, generování schémat, sestavení projekce MCP, sestavení OpenAPI, sestavení HTTP routeru; provedení, volání handlerů, cache hity, missy, vyřazení) a načasování fází na monotónních hodinách, každé zvýšené na jednom pojmenovaném místě; capability/executor.rs je jediná cesta provedení, kterou používá každý transport; mcp/surface.rs připraví výpisy nástrojů a zdrojů jednou na sdílený výpis; http/router.rs vykreslí dokument OpenAPI jednou; modul perf zpřístupňuje čítače jako schopnost.
Jak to vidět
apps/majordomus-cli/target/debug/majordomus serve & # then, after many requests:
curl -s http://127.0.0.1:8741/api/v1/perf | jq '{repository_scans, index_builds, registry_builds, schema_generations, mcp_projection_builds, openapi_builds}'
# the same numbers after the hundredth request as after the firstCo nepokrývá
Sdílený server drží index, který sestavil při startu; změnu v repozitáři uvidí až další server, ne tento (znovuobjevení po restartu je smlouva, ADR 2 a ADR 3). Latence v reálném čase je věcí měření výkonu; toto tvrzení se týká práce, kterou požadavek vykoná.
Proč existuje
Pomalá cesta, od níž mise vyšla, byla práce vykonávaná při každém požadavku, která patřila do startu, a pocit není regresní test. project.rust-hot-path je pravidlo, ADR 0004 rozhodnutí. apps/majordomus-cli/tests/hot_path.rs pošle dvě stě požadavků přes skutečné transporty stdio a HTTP; test/cases/91_canonical_architecture.sh pošle dvě stě rámců sestavenému binárnímu souboru v repozitáři, který zapsal init, a porovná čítače před a po.