LazowskiAnton · Extensions

BuildSmith

Cosa ha fatto la compilazione e perché ha richiesto quel tempo. Dopo ogni compilazione, la barra di stato ne mostra la durata e la differenza rispetto alla precedente; la finestra Sequenza temporale compilazione mostra ogni progetto su una sequenza temporale — quali sono stati eseguiti in parallelo, quali hanno atteso e il percorso critico che ha determinato il totale.

Gratuito · Visual Studio 2022 e 2026 · 14 lingue dell’interfaccia · nessuna telemetria

Perché BuildSmith

La finestra Sequenza temporale compilazione: il risultato della compilazione e la sua durata rispetto alla precedente, una barra per progetto nell’ordine di avvio, il percorso critico contornato in arancione

Dove è finito il tempo

La finestra Output dice che la compilazione ha richiesto 1 min 48 s. La sequenza temporale dice quali progetti l’hanno richiesto, quali sono stati eseguiti affiancati e quale catena di progetti l’intera compilazione ha dovuto attendere.

Confrontata con una compilazione simile

Una compilazione Debug su main viene confrontata con la precedente compilazione Debug su main — non con una ricompilazione, una compilazione Release o un altro branch. Così ▲ 4.1 s significa davvero qualcosa.

Silenziosa

Nessuna finestra si apre da sola, nulla compare all’improvviso: una sola riga nella barra di stato dopo la compilazione. Quando la registrazione è disattivata, BuildSmith dorme davvero — non ascolta nemmeno gli eventi di compilazione.

Gratuito, senza vincoli

Nessun abbonamento, nessuna versione «pro», nessuna raccolta di dati, nessun messaggio nella finestra Output o all’avvio. La cronologia resta sul tuo computer. L’unica cosa che ti chiederemo — dopo che l’avrai usata per un po’ — è una valutazione sul Marketplace. Funziona con Visual Studio 2022 e 2026, x64 e ARM64.

Funzionalità

La compilazione a colpo d’occhio

Apri Compila › Sequenza temporale compilazione (anche in Visualizza › Altre finestre e sulla barra degli strumenti SmithWorks). La finestra mostra l’ultima compilazione — o qualsiasi compilazione della cronologia — con un riepilogo in alto e una barra per progetto sotto.

La finestra Sequenza temporale compilazione: l’intestazione con il risultato, la durata e la differenza, poi i progetti su una sequenza temporale con il percorso critico contornato, i progetti aggiornati tratteggiati e una descrizione comando

Il tempo nella barra di stato

Dopo ogni compilazione, la barra di stato di Visual Studio ne mostra la durata e la differenza rispetto alla precedente compilazione comparabile: ⏱ 1 min 48 s (▲ 4.1 s) — ▲ più lenta, ▼ più veloce. È l’unica cosa che BuildSmith mostra di sua iniziativa, e si può disattivare nelle impostazioni.

Comparabile significa stesso tipo di compilazione (Compila o Ricompila), stessa configurazione, stessa piattaforma e stesso branch Git. Se una compilazione simile non esiste ancora, viene mostrata solo la durata.

L’intestazione

La parte superiore della finestra riassume la compilazione mostrata:

Sullo schermoSignificato
✓ 1 min 48 s  ▲ 4.1 s rispetto alla precedenteIl risultato (riuscita o non riuscita), la durata totale e un badge con la differenza rispetto alla precedente compilazione comparabile; la sua descrizione comando indica quanto è durata quella compilazione e quando.
14 progetti · 9 compilati · 5 aggiornati · 1 non riuscitiQuanti progetti hanno partecipato, quanti sono stati davvero compilati, quanti sono stati saltati perché aggiornati e quanti non sono riusciti.
percorso critico 1 min 31 s · Debug · Any CPU · mainLa lunghezza del percorso critico, poi la configurazione, la piattaforma e il branch Git della compilazione.
Il selettore di compilazioneQualsiasi compilazione registrata della soluzione: la sequenza temporale passa a quella.
🏷 ⏻ ⚙🏷 assegna un’etichetta alla compilazione mostrata, ⏻ attiva o disattiva la registrazione, ⚙ apre le impostazioni.

Le barre

Sullo schermoSignificato
Barra bluUn progetto che è stato compilato, una riga per progetto nell’ordine di avvio: la barra inizia dove il progetto è davvero iniziato dopo l’avvio della compilazione ed è lunga quanto è durato. Le barre che si sovrappongono sono state eseguite in parallelo, così vedi quanto è stata davvero parallela la compilazione.
Contorno arancioneIl percorso critico: la catena di progetti, ognuno in attesa del precedente, che ha determinato la durata totale. Velocizzarne uno velocizza la compilazione; gli altri progetti sono stati eseguiti in parallelo.
Tratto tratteggiatoAggiornato: saltato, non è cambiato nulla.
Barra rossaLa compilazione del progetto non è riuscita.
▲ 2.4 sAccanto a ogni barra: la sua durata e, quando è rilevante, la differenza rispetto allo stesso progetto nella precedente compilazione comparabile.

Passa il mouse su una barra per i dettagli: quanto è durato il progetto, da quando a quando dopo l’avvio della compilazione, la differenza rispetto alla compilazione precedente e se era sul percorso critico.

La finestra può restare aperta mentre lavori: passa da sola a ogni nuova compilazione. Le schede Sequenza temporale, Confronto e Cronologia sono in alto.

Mai aggiornati

Alcuni progetti vengono compilati a ogni compilazione, anche quando non è cambiato nulla. Ogni volta costa qualche secondo, e nessuno se ne accorge. BuildSmith sì: sopra la sequenza temporale di una compilazione incrementale, una striscia dice quanti progetti di questo tipo ci sono e quanto costano a ogni compilazione. Si espande nell’elenco dei progetti; le loro righe nella sequenza temporale ricevono il segno ⟳.

Una striscia sopra la sequenza temporale: 3 progetti non sono mai aggiornati, 6.4 s a ogni compilazione; l’elenco dei progetti e le cause più comuni

La regola: un progetto viene segnalato quando è stato compilato in ognuna delle ultime 3–5 compilazioni incrementali della stessa configurazione e dello stesso branch, mentre più di metà della soluzione era aggiornata. Le ricompilazioni non contano — lì tutto viene compilato di proposito.

Le cause più comuni:

Risolverlo fa risparmiare quel tempo a ogni compilazione. La striscia si può disattivare nelle impostazioni: Segnala i progetti mai aggiornati.

Cronologia

La scheda Cronologia elenca le compilazioni registrate della soluzione, dalla più recente, raggruppate per giorno. Ogni riga mostra l’ora, il tipo di compilazione, la configurazione e il branch, l’etichetta e una barra proporzionale alla durata — una compilazione lenta salta subito all’occhio.

La scheda Cronologia: una casella di ricerca, intervalli di date, compilazioni selezionate, etichette, barre proporzionali alla durata e il menu di scelta rapida

Trovare una compilazione

Digita nella casella di ricerca — ogni parola deve trovarsi nell’etichetta, nel branch, nella configurazione o nel tipo di compilazione. Restringi per data con Oggi, Ieri e oggi, 7 giorni o Tutte, oppure scegli le date nel calendario (Date…). Solo con etichetta lascia le compilazioni a cui hai assegnato un’etichetta.

Aprire, etichettare, conservare, eliminare

Fai clic su una compilazione (o premi Enter) per aprirla nella sequenza temporale. Con il clic destro: Apri nella sequenza temporale, Etichetta…, Conserva (non eliminare mai) ed Elimina. Il tasto Delete elimina la compilazione, con Annulla per qualche secondo. Il menu ⋯ elimina le compilazioni più vecchie di una data, cancella la cronologia di questa soluzione o di tutte le soluzioni.

Seleziona le compilazioni per confrontarle o per eliminarne diverse insieme. Seleziona quelle con etichetta seleziona ogni compilazione mostrata che ha un’etichetta — il modo più rapido per confrontare «prima» e «dopo».

Per quanto tempo vengono mantenute le compilazioni

Le compilazioni vengono mantenute solo su questo computer, in %LocalAppData%\BuildSmith, una cronologia per soluzione — per 1 giorno, 3 giorni, 1 settimana (predefinito), 2 settimane o 1 mese. Le compilazioni più vecchie vengono eliminate all’apertura della soluzione o alla fine di una compilazione. Quelle con etichetta e quelle mantenute restano, per quanto vecchie siano.

Etichette

🏷 nell’intestazione (o Etichetta… nel menu della cronologia) assegna a una compilazione un breve testo e un colore: uno dei cinque, o uno tuo da un piccolo selettore con tavolozza e colori recenti. Le etichette usate di recente vengono riproposte con un clic, così una serie di compilazioni può condividere la stessa etichetta.

Una compilazione con etichetta non viene mai eliminata per anzianità (a meno che tu non disattivi Conserva le compilazioni con etichetta). Conserva (non eliminare mai) blocca una compilazione senza etichetta.

Registrazione

⏻ nell’intestazione sceglie se le compilazioni vengono registrate:

SceltaCosa succede
Registra le compilazioniL’impostazione predefinita: ogni compilazione viene cronometrata e conservata nella cronologia.
Non per questa soluzioneQuesta soluzione non viene più registrata; le altre sì. Le impostazioni elencano queste soluzioni, con Registra di nuovo.
Disattiva ovunqueBuildSmith dorme in tutte le soluzioni.

Mentre dorme, BuildSmith non fa davvero nulla: non si iscrive agli eventi di compilazione, non scrive nulla nella barra di stato né su disco. La cronologia resta, e la finestra propone Registra di nuovo le compilazioni.

Confrontare le compilazioni

La scheda Confronto mette le compilazioni una accanto all’altra: la correzione è servita, quale progetto è rallentato dopo l’aggiornamento, come è andata la durata della compilazione nel corso della settimana.

La scheda Confronto: i chip delle compilazioni, l’andamento delle durate e una tabella dei progetti per compilazione con differenze colorate, sparkline e percorso critico

Scegliere le compilazioni

Seleziona da 2 a 10 compilazioni in Cronologia e premi ⇄ Confronta N. Senza selezioni, la scheda Confronto mette la compilazione mostrata a confronto con la precedente comparabile. Le compilazioni compaiono come chip in alto; ✕ ne toglie una dal confronto.

L’andamento e la tabella

Un piccolo grafico mostra la durata totale di ogni compilazione. Sotto, una tabella progetti × compilazioni: ogni cella è colorata in base alla differenza rispetto alla prima compilazione — più caldo è più lento, verde è più veloce — con una sparkline, la differenza e ● dove il progetto era sul percorso critico. I progetti senza differenze rilevanti sono raccolti in … altri N senza variazioni notevoli.

Solo i progetti che ti interessano

Progetti: … filtra la tabella: Tutti i progetti (N), Cambiati in modo notevole (N), Sul percorso critico (N) o Solo quelli selezionati, con una casella di ricerca. Il filtro viene ricordato per soluzione, e l’andamento somma allora la durata dei progetti filtrati — l’andamento dei tuoi progetti, non dell’intera soluzione.

Un progetto attraverso le compilazioni

Fai clic su un progetto per vederne le barre in ogni compilazione confrontata; una barra contornata indica che era sul percorso critico di quella compilazione. ‹ Tutti i progetti torna indietro.

Copiare come Markdown

⧉ Copia mette negli Appunti la tabella così come la vedi — le stesse compilazioni, lo stesso filtro — come tabella Markdown, pronta per una pull request o una chat. Nella vista di un singolo progetto copia quel progetto.

Impostazioni

Strumenti › Opzioni › SmithWorks › BuildSmith (o ⚙ nella finestra Sequenza temporale compilazione). Ogni opzione ha una breve descrizione di cosa fa.

OpzionePredefinito
Registra le compilazioniattivo
Non registrate per:Nessuna soluzione è disattivata.
Conserva le compilazioni per:1 settimana
Conserva le compilazioni con etichettaattivo
Tempo nella barra di statoattivo
Segnala i progetti mai aggiornatiattivo
Chiedi una valutazione sul Marketplaceattivo

Cancella tutta la cronologia (N soluzioni, dimensione)… elimina le compilazioni registrate di tutte le soluzioni e chiede se conservare quelle con etichetta e quelle conservate. In basso: Ripristina predefiniti, Documentazione, Valuta nel Marketplace e Invia feedback.

Le impostazioni e la cronologia sono salvate in %LocalAppData%\BuildSmith.

La pagina delle opzioni di BuildSmith
La pagina delle opzioni.

FAQ

BuildSmith invia dei dati?

No. Le durate vengono prese dagli eventi di compilazione di Visual Studio e conservate sul tuo computer, in %LocalAppData%\BuildSmith. Nessuna richiesta di rete, nessuna telemetria.

Perché accanto alla durata non c’è la differenza?

Non c’è ancora una compilazione comparabile: stesso tipo (Compila o Ricompila), configurazione, piattaforma e branch. Compila ancora una volta e la differenza compare.

Che cos’è esattamente il percorso critico?

La catena di progetti che la compilazione ha dovuto attendere: ognuno è partito solo dopo la fine del precedente. La sua lunghezza è la durata minima che la compilazione potrebbe avere con questi progetti, indipendentemente da quanti core hai. Velocizzare un progetto fuori dal percorso critico non accorcia la compilazione.

La finestra resta vuota dopo una compilazione.

Verifica che la registrazione sia attiva (⏻ nella finestra, Registra le compilazioni nelle impostazioni) e che questa soluzione non sia nell’elenco Non registrate per. Le compilazioni avviate fuori da Visual Studio (dotnet build dalla riga di comando) non vengono registrate.

BuildSmith rallenta la compilazione?

No. Ascolta l’inizio e la fine di ogni progetto, che Visual Studio segnala comunque, e scrive un piccolo file dopo la compilazione. Non modifica la compilazione né il suo log.

Quanto spazio su disco occupa la cronologia?

Pochissimo: una compilazione è un breve elenco di progetti con le loro durate. Le impostazioni mostrano la dimensione accanto a Cancella tutta la cronologia, e le compilazioni vecchie se ne vanno da sole dopo il periodo scelto.

Dove posso segnalare un problema o suggerire una funzionalità?

Apri una issue nel repository Feedback su GitHub: ci sono moduli per bug e idee (cambia i nomi privati). Puoi anche usare la scheda Q&A nel Marketplace.

Registro modifiche

1.0.0