LazowskiAnton · Extensions

BuildSmith

Co vaše sestavení dělalo a proč trvalo tak dlouho. Po každém sestavení ukáže stavový řádek jeho čas a změnu oproti předchozímu; okno Časová osa sestavení ukáže každý projekt na časové ose — které běžely souběžně, které čekaly a kritickou cestu, která určila celkový čas.

Zdarma · Visual Studio 2022 a 2026 · 14 jazyků rozhraní · žádná telemetrie

Proč BuildSmith

Okno Časová osa sestavení: výsledek sestavení a jeho čas oproti předchozímu, jeden pruh na projekt v pořadí, v jakém začaly, kritická cesta orámovaná oranžově

Kam se poděl čas

Okno Výstup řekne, že sestavení trvalo 1 min 48 s. Časová osa řekne, které projekty ten čas spotřebovaly, které z nich běžely vedle sebe a na kterou řadu projektů muselo čekat celé sestavení.

Porovnání se stejným druhem sestavení

Sestavení Debug na main se porovnává s předchozím sestavením Debug na main — ne s opětovným sestavením, se sestavením Release ani s jinou větví. Proto ▲ 4.1 s něco znamená.

Nenápadný

Žádné okno se samo neotevře, nic nevyskočí: jen jeden řádek ve stavovém řádku po sestavení. Když je záznam vypnutý, BuildSmith opravdu spí — neposlouchá ani události sestavení.

Zdarma a bez háčků

Žádné předplatné, žádná verze „pro“, žádný sběr dat a žádné zprávy v okně „Výstup“ ani při spuštění. Historie zůstává ve vašem počítači. Jediné, o co kdy požádáme — až ho nějakou dobu budete používat — je hodnocení na Marketplace. Funguje ve Visual Studiu 2022 a 2026, x64 i ARM64.

Funkce

Sestavení na první pohled

Otevřete Sestavení › Časová osa sestavení (také v Zobrazit › Další okna a na panelu nástrojů SmithWorks). Okno ukazuje poslední sestavení — nebo libovolné z historie — se souhrnem nahoře a jedním pruhem na projekt pod ním.

Okno Časová osa sestavení: záhlaví s výsledkem, časem a změnou, pod ním projekty na časové ose s orámovanou kritickou cestou, šrafovanými aktuálními projekty a popiskem

Čas na stavovém řádku

Po každém sestavení ukáže stavový řádek Visual Studia jeho čas a změnu oproti předchozímu srovnatelnému sestavení: ⏱ 1 min 48 s (▲ 4.1 s) — ▲ pomalejší, ▼ rychlejší. Je to jediná věc, kterou BuildSmith ukazuje sám od sebe, a v nastavení ji lze vypnout.

Srovnatelné znamená stejný druh sestavení (Sestavit nebo Znovu sestavit), stejnou konfiguraci, stejnou platformu a stejnou větev Gitu. Pokud takové sestavení ještě není, zobrazí se jen čas.

Záhlaví

Horní část okna shrnuje zobrazené sestavení:

Na obrazovceVýznam
✓ 1 min 48 s  ▲ 4.1 s oproti předchozímuVýsledek (úspěch nebo selhání), celkový čas a odznak se změnou oproti předchozímu srovnatelnému sestavení; jeho popisek říká, jak dlouho to sestavení trvalo a kdy proběhlo.
Projekty: 14 · sestaveno: 9 · aktuální: 5 · s chybou: 1Kolik projektů se účastnilo, kolik se opravdu sestavilo, kolik se přeskočilo jako aktuální a kolik selhalo.
kritická cesta 1 min 31 s · Debug · Any CPU · mainDélka kritické cesty, potom konfigurace, platforma a větev Gitu daného sestavení.
Výběr sestaveníLibovolné zaznamenané sestavení řešení: časová osa se na něj přepne.
🏷 ⏻ ⚙🏷 přidá zobrazenému sestavení štítek, ⏻ zapne nebo vypne záznam, ⚙ otevře nastavení.

Pruhy

Na obrazovceVýznam
Modrý pruhProjekt, který se sestavil, jeden řádek na projekt v pořadí, v jakém začaly: pruh začíná tam, kde projekt po začátku sestavení opravdu začal, a je dlouhý tak, jak dlouho trval. Pruhy, které se překrývají, běžely souběžně — vidíte tak, jak paralelní sestavení doopravdy bylo.
Oranžový rámečekKritická cesta: řada projektů, z nichž každý čekal na předchozí a které určily celkový čas. Zrychlení kteréhokoli z nich zrychlí sestavení; ostatní projekty běžely vedle nich.
Šrafovaný pahýlAktuální: přeskočeno, nic se v něm nezměnilo.
Červený pruhProjekt se nepodařilo sestavit.
▲ 2.4 sU každého pruhu: jeho čas a, pokud je výrazná, změna oproti stejnému projektu v předchozím srovnatelném sestavení.

Najeďte na pruh pro podrobnosti: jak dlouho projekt trval, od kdy do kdy od začátku sestavení, změna oproti předchozímu sestavení a zda byl na kritické cestě.

Okno může zůstat otevřené, zatímco pracujete: na každé nové sestavení se přepne samo. Nahoře jsou karty Časová osa, Porovnání a Historie.

Nikdy aktuální

Některé projekty se sestavují při každém sestavení, i když se v nich nic nezměnilo. Pokaždé to stojí pár sekund a nikdo si toho nevšimne. BuildSmith ano: nad časovou osou přírůstkového sestavení pruh oznámí, kolik takových projektů je a kolik stojí při každém sestavení. Po rozbalení ukáže seznam projektů; jejich řádky na časové ose dostanou značku ⟳.

Pruh nad časovou osou: 3 projekty nejsou nikdy aktuální, 6.4 s při každém sestavení; seznam projektů a obvyklé příčiny

Pravidlo: projekt je označen, když se sestavil v každém z posledních 3 až 5 přírůstkových sestavení se stejnou konfigurací a větví, zatímco víc než polovina řešení byla aktuální. Opětovná sestavení se nepočítají — tam se vše sestavuje záměrně.

Obvyklé příčiny:

Oprava ušetří ten čas při každém sestavení. Pruh lze vypnout v nastavení: Upozorňovat na projekty, které nikdy nejsou aktuální.

Historie

Karta Historie obsahuje zaznamenaná sestavení řešení, od nejnovějších, seskupená podle dnů. Každý řádek ukazuje čas, druh sestavení, konfiguraci a větev, štítek a pruh úměrný času sestavení — pomalé sestavení je hned vidět.

Karta Historie: vyhledávací pole, rozsahy dat, zaškrtnutá sestavení, štítky, pruhy úměrné času sestavení a místní nabídka

Najít sestavení

Pište do vyhledávacího pole — každé slovo musí být nalezeno ve štítku, větvi, konfiguraci nebo druhu sestavení. Zužte výběr podle data pomocí Dnes, Včera a dnes, 7 dní nebo Vše, případně vyberte data v kalendáři (Data…). Jen se štítkem ponechá sestavení, kterým jste dali štítek.

Otevřít, štítek, ponechat, odstranit

Kliknutím na sestavení (nebo klávesou Enter) ho otevřete na časové ose. Pravým tlačítkem jsou k dispozici Otevřít na časové ose, Štítek…, Ponechat (nikdy neodstraňovat) a Odstranit. Klávesa Delete sestavení odstraní, s možností Zpět po několik sekund. Nabídka ⋯ odstraní sestavení starší než zvolené datum nebo vymaže historii tohoto řešení či všech řešení.

Zaškrtněte sestavení, abyste je porovnali nebo jich odstranili několik najednou. Zaškrtnout se štítkem zaškrtne každé zobrazené sestavení, které má štítek — nejrychlejší způsob, jak porovnat „před“ a „po“.

Jak dlouho se sestavení uchovávají

Sestavení se uchovávají jen v tomto počítači, v %LocalAppData%\BuildSmith, jedna historie na řešení — po dobu 1 dne, 3 dnů, 1 týdne (výchozí), 2 týdnů nebo 1 měsíce. Starší sestavení se odstraní při otevření řešení nebo na konci sestavení. Sestavení se štítkem a ponechaná sestavení zůstávají bez ohledu na stáří.

Štítky

🏷 v záhlaví (nebo Štítek… v nabídce Historie) dá sestavení krátký text a barvu: jednu z pěti nebo vlastní z malého výběru s paletou a nedávnými barvami. Nedávno použité štítky se nabízejí znovu na jedno kliknutí, takže řada sestavení může sdílet jeden štítek.

Sestavení se štítkem se kvůli stáří nikdy neodstraní (pokud nevypnete Uchovávat sestavení se štítkem). Ponechat (nikdy neodstraňovat) zachová sestavení i bez štítku.

Záznam

⏻ v záhlaví určuje, zda se sestavení zaznamenávají:

VolbaCo se stane
Zaznamenávat sestaveníVýchozí: každé sestavení se změří a uloží do historie.
Ne pro toto řešeníToto řešení se už nezaznamenává; ostatní ano. Nastavení taková řešení vypisuje, s tlačítkem Znovu zaznamenávat.
Vypnout všudeBuildSmith spí ve všech řešeních.

Když spí, BuildSmith opravdu nic nedělá: neodebírá události sestavení a nic nezapisuje do stavového řádku ani na disk. Historie zůstane a okno nabídne Znovu zaznamenávat sestavení.

Porovnání sestavení

Karta Porovnání staví sestavení vedle sebe: pomohla oprava, který projekt se po aktualizaci zpomalil, jak se čas sestavení vyvíjel během týdne.

Karta Porovnání: čipy sestavení, trend časů sestavení a tabulka projektů podle sestavení s barevnými změnami, minigrafy a kritickou cestou

Výběr sestavení

Na kartě Historie zaškrtněte 2 až 10 sestavení a stiskněte ⇄ Porovnat (N). Bez zaškrtnutí ukáže karta Porovnání zobrazené sestavení oproti předchozímu srovnatelnému. Sestavení se objeví nahoře jako čipy; ✕ jedno z porovnání vyřadí.

Trend a tabulka

Malý graf ukazuje celkový čas každého sestavení. Pod ním tabulka projekty × sestavení: každá buňka je obarvena podle změny oproti prvnímu sestavení — teplejší je pomalejší, zelená je rychlejší — s minigrafem, změnou a ● tam, kde byl projekt na kritické cestě. Projekty bez výrazné změny jsou sbalené do … dalších N bez výrazné změny.

Jen projekty, které vás zajímají

Projekty: … filtruje tabulku: Všechny projekty (N), Výrazně změněné (N), Na kritické cestě (N) nebo Jen zaškrtnuté, s vyhledávacím polem. Filtr se pamatuje pro každé řešení a trend pak sčítá čas filtrovaných projektů — trend vašich projektů, ne celého řešení.

Jeden projekt napříč sestaveními

Kliknutím na projekt zobrazíte jeho pruhy v každém porovnávaném sestavení; orámovaný pruh znamená, že byl na kritické cestě daného sestavení. ‹ Všechny projekty vede zpět.

Kopírovat jako Markdown

⧉ Kopírovat vloží tabulku tak, jak ji vidíte — stejná sestavení, stejný filtr — do schránky jako tabulku Markdown, připravenou pro pull request nebo chat. V zobrazení jednoho projektu zkopíruje ten projekt.

Nastavení

Nástroje › Možnosti › SmithWorks › BuildSmith (nebo ⚙ v okně Časová osa sestavení). Každá možnost má krátký popis toho, co dělá.

MožnostVýchozí
Zaznamenávat sestavenízapnuto
Nezaznamenává se pro:Žádné řešení není vypnuté.
Uchovávat sestavení:1 týden
Uchovávat sestavení se štítkemzapnuto
Čas na stavovém řádkuzapnuto
Upozorňovat na projekty, které nikdy nejsou aktuálnízapnuto
Požádat o hodnocení na Marketplacezapnuto

Vymazat celou historii (řešení: N, velikost)… odstraní zaznamenaná sestavení všech řešení a zeptá se, zda ponechat sestavení se štítkem a ponechaná sestavení. Dole: Obnovit výchozí, Dokumentace, Ohodnotit na Marketplace a Odeslat zpětnou vazbu.

Nastavení a historie se ukládají do %LocalAppData%\BuildSmith.

Stránka možností BuildSmith
Stránka možností.

Časté dotazy

Odesílá BuildSmith nějaká data?

Ne. Časy sestavení se berou z událostí sestavení Visual Studia a zůstávají ve vašem počítači, v %LocalAppData%\BuildSmith. Žádné síťové požadavky, žádná telemetrie.

Proč u času není žádná změna?

Zatím neexistuje srovnatelné sestavení: stejný druh (Sestavit nebo Znovu sestavit), konfigurace, platforma a větev. Sestavte ještě jednou a změna se objeví.

Co přesně je kritická cesta?

Řada projektů, na které sestavení muselo čekat: každý začal až po skončení předchozího. Její délka je nejkratší možný čas sestavení s těmito projekty bez ohledu na počet jader. Zrychlení projektu mimo kritickou cestu sestavení nezkrátí.

Okno po sestavení zůstává prázdné.

Zkontrolujte, že je záznam zapnutý (⏻ v okně, Zaznamenávat sestavení v nastavení) a že toto řešení není v seznamu Nezaznamenává se pro. Sestavení spuštěná mimo Visual Studio (dotnet build na příkazovém řádku) se nezaznamenávají.

Zpomaluje BuildSmith sestavení?

Ne. Poslouchá začátek a konec každého projektu, které Visual Studio hlásí tak jako tak, a po sestavení zapíše jeden malý soubor. Sestavení ani jeho protokolování nemění.

Kolik místa na disku historie zabírá?

Velmi málo: sestavení je krátký seznam projektů s jejich časy. Nastavení ukazuje velikost vedle Vymazat celou historii a stará sestavení po zvolené době zmizí sama.

Kde nahlásit problém nebo navrhnout funkci?

Založte issue v repozitáři Feedback na GitHubu — jsou tam formuláře pro chyby a nápady (prosím změňte soukromé názvy). Můžete také použít kartu Q&A na Marketplace.

Historie změn

1.0.0