I0817 — Časování fází a čítače práce za MJ_TIMING
Měřit čas každého validátoru a počítat každé zploštění YAML a volání gitu, když je nastaveno MJ_TIMING, a při ukončení je hlásit seřazené.
HOTOVO vlna 0 · p0 · profil implementation · běží samostatně
Součást M004 — Výkon je spustitelný důkaz a horká cesta nedělá žádnou kanonickou práci dvakrát.
Cíl
Měřit čas každého validátoru a počítat každé zploštění YAML a volání gitu, když je nastaveno MJ_TIMING, a při ukončení je hlásit seřazené.
Proč
Bez toho nelze v tomto milníku nic změřit; optimalizace bez pořadí je hádání.
Aktuální stav
Přistálo na feature/performance-truth jako 77f5d79: dispatcher deklaruje jednu fázi na validátor, mj_git a mj_yaml_flatten počítají.
Cílový stav
Fáze a čítače jsou slovník, v němž hlásí každý pozdější úkol.
Rozsah
- lib/common.sh
- lib/doctrine.sh
- test/cases/08_no_forbidden_constructs.sh
Mimo rozsah
- Tracing backend
- Měření času, které je zapnuté, když MJ_TIMING není nastaveno
Závislosti
Žádné. Tento úkol je kořenem grafu.
Co na tom čeká
- I0818HOTOVO Registr příkazů se čte jedním průchodem
- I0819HOTOVO Model projektu se načítá jedním zploštěním na soubor a bez vyhledávání po souborech
- I0821PŘIPRAVENO Zploštělé YAML se cachuje v .ai/local/cache podle hashe obsahu
- I0823HOTOVO majordomus bench: cíle odvozené z registru příkazů
- I0832PŘIPRAVENO generate-site-data je instrumentován a jeho úzká místa odstraněna
- I0833HOTOVO uzly a hrany znalostí čtou každý zdroj jednou
- I0837HOTOVO Zpráva o časování jako JSON
Kritéria přijetí
- Report řadí fáze podle času a sčítá čítače na stderr, přičemž výstup příkazu zůstává nedotčen
- Vypnuto stojí fáze nebo počet jeden test a žádný podproces
Validace
- MJ_TIMING=1 bin/majordomus doctor
- bash test/run.sh 08_no_forbidden_constructs
Požadované důkazy
- phase_timing
Důkazy
| pokrývá | typ | command | výsledek | u commitu |
|---|---|---|---|---|
| phase_timing | test | MJ_TIMING=1 bin/majordomus doctor | report na stderr řadí jednu fázi na validátor a sčítá počítadla yaml_flatten a git; v tomto repozitáři jsou dvě největší fáze validátory project-model a command-coverage, dohromady dvě třetiny celku doctoru; případ 08 přijímá soubor s časováním jako scratch cestu; případy 02, 14, 17 a 18 procházejí beze změny | e2a00a7 |
Riziko
Hodiny jsou EPOCHREALTIME, kde je bash má, jinak perl; celé sekundy tam, kde neexistuje ani jedno, a zpráva říká, které z nich.
Časová osa
- zahájeno
- 2026-09-05T01:35:00Z
- ověřeno
- 2026-09-05T01:44:00Z
- dokončeno
- 2026-09-05T01:44:00Z
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Kanonický záznam: .ai/repo/project/issues/I0817.yaml. Přečtěte jej zpět pomocí majordomus plan show I0817.