Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

Cesty Rust executable, které se škálují s repozitářem, mají criterion benchmarky, které se sestaví při každém pushi, a každá spustitelná schopnost deklaruje svou politiku měření výkonu, vyžadovanou nebo prominutou z typovaného důvodu

Práce, která roste s repozitářem, se měří, nepředpokládá: parsování podmnožiny YAML a front matter jednoho objektu, jedna shoda globu, index sestavený průchodem souborovým systémem, nad ním složený registr, dokument OpenAPI, jedno MCP resources/list a jedno volání schopnosti (benches/projections.rs); router, bridge a sdílený server nad skutečným socketem (benches/shared.rs). Každé měření je cíl criterion deklarovaný v Cargo.toml bez výchozího harnessu a CI je staví při každém pushi, takže horká cesta nemůže tiše ztratit své měření. Samostatně každá spustitelná schopnost nese politiku měření: required s případy, které poskytuje její vstupní typ, nebo waived s typovaným důvodem; zdroj je waived jako not_executable.

deklarovaný stavdeklarovaný stav: zaručeno Deklarováno jako deterministické a blokující, implementováno a s uvedeným behaviorálním testem, který to má dokázat. Zda to zaznamenaný běh podporuje, říká verdikt důkazů zobrazený vedle.

zaznamenané důkazyzaznamenané důkazy: nespuštěno Deklarováno jako zaručené, ale nepodložené zaznamenaným během: test je pojmenován, ale žádný úspěšný běh nad současnými vstupy zaznamenán není. jak se zaznamenávají důkazy

YAML subset a front matter, porovnávání glob vzorů, index, registr, dokument OpenAPI, jeden výpis MCP a jedno volání schopnosti (benches/projections.rs); router, bridge a sdílený server (benches/shared.rs). Čísla se hlásí, netvrdí se; žádný limit latence se neslibuje, dokud se nezměří na CI. Makro capability! nepřeloží spustitelnou schopnost bez případů měření výkonu, registr počítá povinné i prominuté a případ čte politiku každé spustitelné schopnosti zpět přes capabilities list.

Co to znamená

Práce, která roste s repozitářem, se měří, nepředpokládá se: podmnožina YAML a parsování front matter jednoho objektu, jedna shoda glob, index sestavený průchodem souborového systému, registr složený nad ním, dokument OpenAPI, jeden resources/list MCP a jedno volání schopnosti (benches/projections.rs); router, bridge a sdílený server přes skutečný socket (benches/shared.rs). Každé měření je cíl criterion deklarovaný v Cargo.toml bez výchozího harnessu a CI je sestavuje při každém pushi, takže horká cesta nemůže tiše ztratit své měření. Odděleně každá spustitelná schopnost nese politiku měření: required s případy, které poskytuje její vstupní typ, nebo waived s typovaným důvodem; zdroj je prominut jako not_executable.

Princip

Záznamy [[bench]] v apps/majordomus-cli/Cargo.toml jmenují každý soubor pod benches/ s harness = false; cargo bench --no-run v scripts/rust-check a v úloze rust je zkompiluje. Makro capability! bere případy měření výkonu z implementace BenchmarkCases vstupního typu, takže spustitelný soubor bez případů se nezkompiluje; registr počítá benchmark_required a benchmark_waived a capabilities list --format json nese politiku každé schopnosti. test/cases/77_rust_evidence.sh kontroluje záznamy [[bench]] proti souborům, že každá cesta, kterou pravidlo jmenuje, má měření výkonu, sestaví měření výkonu, když je k dispozici toolchain, a přečte politiku každého spustitelného souboru zpět přes sestavený spustitelný soubor.

Jak to vidět

just bench                               # every criterion target; `just bench shared` runs one
just bench projections
apps/majordomus-cli/target/debug/majordomus capabilities list --format json | jq '.capabilities[] | select(.kind != "resource") | {id, benchmark}'
apps/majordomus-cli/target/debug/majordomus capabilities list --format json | jq '.summary'

Co nepokrývá

Čísla se hlásí, netvrdí se: CI měření výkonu buildí a nespouští je a žádný limit latence není slíben, dokud není změřen na hardwaru samotné CI. Deklarované případy spustitelných souborů dnes běží jako testy; načasovat každou schopnost přímo a přes každý transport se základní hodnotou a kontrolou je projekce měření výkonu, což bude samostatné tvrzení, až přistane. Měření příkazů shellového nástroje je bench v shellovém nástroji, ne v tomto crate.

Proč existuje

Operátor požadoval, aby měření výkonu existovala a bylo vynucováno. Měření, které nikdo nesestavuje, shnije spolu s API, které měřilo; to, které CI kompiluje při každém pushi, je aspoň vždy věrné kódu, a to, které sada umí jmenovat, nelze při refaktoru zahodit. Pravidlo project.rust-cli-evidence jmenuje cesty, které se musí měřit; seznam drží toto tvrzení a případ.

Detail vykreslený z docs/claims/rust-hot-path-benchmarks.md.

Od tvrzení k důkazu

  1. 1 · veřejné tvrzení

    Cesty Rust executable, které se škálují s repozitářem, mají criterion benchmarky, které se sestaví při každém pushi, a každá spustitelná schopnost deklaruje svou politiku měření výkonu, vyžadovanou nebo prominutou z typovaného důvodu

    Vytvořeno na Měření výkonu.

  2. 2 · kanonické tvrzení

    rust-hot-path-benchmarksdeklarovaný stav: zaručeno v docs/CLAIMS.yaml

    Definováno v .ai/repo/rules/project/rust-cli-evidence.v1.md

  3. 3 · implementace

    apps/majordomus-cli/benches/projections.rs

  4. 4 · test a scénáře

    Test: test/cases/77_rust_evidence.sh

    Provedeno v Prove the tool is fast, not assume it, and refuse a regression.

  5. 5 · zaznamenané běhy

    zaznamenané důkazy: nespuštěno jak se zaznamenávají důkazy

Ověřte si to sami

Test běží v jednorázovém dočasném repozitáři a ověřuje chování, ne řetězec ve zdrojovém kódu.

z klonu repozitáře
bash test/run.sh 77_rust_evidence

Kde se toto tvrzení používá

Okamžiky, na které to odpovídá

Prohledává názvy a popisy všech stránek, které tento web publikuje.