LazowskiAnton · Extensions

BuildSmith

O que a sua compilação fez e por que demorou tanto. Depois de cada compilação, a barra de status mostra o tempo e a variação em relação à anterior; a janela Linha do tempo da compilação mostra cada projeto em uma linha do tempo — quais rodaram em paralelo, quais esperaram e o caminho crítico que determinou o total.

Gratuito · Visual Studio 2022 e 2026 · 14 idiomas de interface · sem telemetria

Por que o BuildSmith

A janela Linha do tempo da compilação: o resultado da compilação e o tempo comparado ao da anterior, uma barra por projeto na ordem em que começaram, o caminho crítico contornado em laranja

Para onde foi o tempo

A janela Saída diz que a compilação levou 1 min 48 s. A linha do tempo diz quais projetos levaram esse tempo, quais rodaram lado a lado e por qual cadeia de projetos a compilação inteira teve que esperar.

Comparada com uma compilação equivalente

Uma compilação Debug em main é comparada com a compilação Debug anterior em main — não com uma recompilação, uma compilação Release ou outro branch. Por isso ▲ 4.1 s quer dizer alguma coisa.

Discreto

Nenhuma janela abre sozinha, nada aparece de repente: uma linha na barra de status depois da compilação. Com a gravação desligada, o BuildSmith realmente dorme — nem sequer escuta os eventos de compilação.

Gratuito, sem pegadinhas

Sem assinatura, sem versão “pro”, sem coleta de dados, sem mensagens na janela Saída ou na inicialização. O histórico fica no seu computador. A única coisa que vamos pedir — depois que você o tiver usado por um tempo — é uma avaliação no Marketplace. Funciona no Visual Studio 2022 e 2026, x64 e ARM64.

Recursos

A compilação num relance

Abra Compilação › Linha do tempo da compilação (também em Exibir › Outras Janelas e na barra de ferramentas SmithWorks). A janela mostra a última compilação — ou qualquer compilação do histórico — com um resumo no topo e uma barra por projeto abaixo.

A janela Linha do tempo da compilação: o cabeçalho com o resultado, o tempo e a variação, depois os projetos em uma linha do tempo com o caminho crítico contornado, projetos atualizados hachurados e uma dica de ferramenta

O tempo na barra de status

Depois de cada compilação, a barra de status do Visual Studio mostra o tempo e a variação em relação à compilação comparável anterior: ⏱ 1 min 48 s (▲ 4.1 s) — ▲ mais lenta, ▼ mais rápida. É a única coisa que o BuildSmith mostra por conta própria, e pode ser desligada nas configurações.

Comparável significa o mesmo tipo de compilação (Compilar ou Recompilar), a mesma configuração, a mesma plataforma e o mesmo branch Git. Se ainda não houver uma compilação assim, só o tempo é mostrado.

O cabeçalho

O topo da janela resume a compilação mostrada:

Na telaSignificado
✓ 1 min 48 s  ▲ 4.1 s vs. anteriorO resultado (bem-sucedida ou com falha), o tempo total e um selo com a variação em relação à compilação comparável anterior; a dica dele diz quanto tempo aquela compilação levou e quando.
14 projetos · 9 compilados · 5 atualizados · 1 com falhaQuantos projetos participaram, quantos foram realmente compilados, quantos foram ignorados por estarem atualizados e quantos falharam.
caminho crítico 1 min 31 s · Debug · Any CPU · mainA duração do caminho crítico, depois a configuração, a plataforma e o branch Git da compilação.
O seletor de compilaçãoQualquer compilação registrada da solução: a linha do tempo muda para ela.
🏷 ⏻ ⚙🏷 rotula a compilação mostrada, ⏻ liga ou desliga a gravação, ⚙ abre as configurações.

As barras

Na telaSignificado
Barra azulUm projeto que foi compilado, uma linha por projeto na ordem em que começaram: a barra começa onde o projeto realmente começou após o início da compilação e é tão longa quanto ele levou. Barras que se sobrepõem rodaram em paralelo, então você vê o quanto a compilação foi realmente paralela.
Contorno laranjaO caminho crítico: a cadeia de projetos, cada um esperando pelo anterior, que determinou o tempo total. Acelerar um deles acelera a compilação; os outros projetos rodaram em paralelo.
Traço hachuradoAtualizado: ignorado, nada nele mudou.
Barra vermelhaA compilação do projeto falhou.
▲ 2.4 sAo lado de cada barra: o tempo dela e, quando for relevante, a variação em relação ao mesmo projeto na compilação comparável anterior.

Passe o mouse sobre uma barra para ver os detalhes: quanto tempo o projeto levou, de quando a quando após o início da compilação, a variação em relação à compilação anterior e se ele estava no caminho crítico.

A janela pode ficar aberta enquanto você trabalha: ela passa sozinha para cada nova compilação. As abas Linha do tempo, Comparar e Histórico ficam no topo.

Nunca atualizados

Alguns projetos são compilados em toda compilação, mesmo quando nada neles mudou. Cada vez custa alguns segundos, e ninguém percebe. O BuildSmith percebe: acima da linha do tempo de uma compilação incremental, uma faixa diz quantos projetos assim existem e quanto custam por compilação. Ela se expande na lista de projetos; as linhas deles na linha do tempo ganham a marca ⟳.

Uma faixa acima da linha do tempo: 3 projetos nunca estão atualizados, 6.4 s a cada compilação; a lista de projetos e as causas comuns

A regra: um projeto é apontado quando foi compilado em cada uma das últimas 3 a 5 compilações incrementais da mesma configuração e branch, enquanto mais da metade da solução estava atualizada. Recompilações não contam — nelas tudo é compilado de propósito.

As causas comuns:

Corrigir isso economiza esse tempo em toda compilação. A faixa pode ser desligada nas configurações: Apontar projetos que nunca estão atualizados.

Histórico

A aba Histórico lista as compilações registradas da solução, das mais recentes para as mais antigas, agrupadas por dia. Cada linha mostra a hora, o tipo de compilação, a configuração e o branch, o rótulo e uma barra proporcional ao tempo da compilação — uma compilação lenta salta aos olhos.

A aba Histórico: uma caixa de pesquisa, intervalos de datas, compilações marcadas, rótulos, barras proporcionais ao tempo da compilação e o menu de contexto

Encontrar uma compilação

Digite na caixa de pesquisa — cada palavra precisa aparecer no rótulo, no branch, na configuração ou no tipo de compilação. Restrinja por data com Hoje, Ontem e hoje, 7 dias ou Todas, ou escolha datas no calendário (Datas…). Só com rótulo deixa as compilações que você rotulou.

Abrir, rotular, manter, excluir

Clique em uma compilação (ou pressione Enter) para abri-la na linha do tempo. O clique com o botão direito oferece Abrir na linha do tempo, Rotular…, Manter (nunca excluir) e Excluir. A tecla Delete exclui a compilação, com Desfazer por alguns segundos. O menu ⋯ exclui compilações anteriores a uma data e limpa o histórico desta solução ou de todas as soluções.

Marque compilações para compará-las ou excluir várias de uma vez. Marcar as rotuladas marca todas as compilações mostradas que têm rótulo — o jeito mais rápido de comparar “antes” e “depois”.

Por quanto tempo as compilações são mantidas

As compilações ficam só neste computador, em %LocalAppData%\BuildSmith, um histórico por solução — por 1 dia, 3 dias, 1 semana (padrão), 2 semanas ou 1 mês. Compilações mais antigas são excluídas quando a solução é aberta ou quando uma compilação termina. As rotuladas e as mantidas ficam, não importa a idade.

Rótulos

🏷 no cabeçalho (ou Rotular… no menu do histórico) dá a uma compilação um texto curto e uma cor: uma de cinco, ou uma sua, escolhida em um pequeno seletor com paleta e cores recentes. Os rótulos usados recentemente são oferecidos de novo com um clique, então uma série de compilações pode compartilhar o mesmo rótulo.

Uma compilação rotulada nunca é excluída por idade (a menos que você desligue Manter compilações rotuladas). Manter (nunca excluir) fixa uma compilação sem rótulo.

Gravação

⏻ no cabeçalho escolhe se as compilações são gravadas:

OpçãoO que acontece
Gravar compilaçõesO padrão: cada compilação é cronometrada e guardada no histórico.
Não para esta soluçãoEsta solução deixa de ser gravada; as outras continuam. As configurações listam essas soluções, com Gravar novamente.
Desativado em todos os lugaresO BuildSmith dorme em todas as soluções.

Dormindo, o BuildSmith realmente não faz nada: não assina os eventos de compilação, não escreve nada na barra de status nem no disco. O histórico é mantido, e a janela oferece Gravar compilações novamente.

Comparar compilações

A aba Comparar coloca compilações lado a lado: a correção ajudou, qual projeto ficou mais lento depois da atualização, como o tempo de compilação variou ao longo da semana.

A aba Comparar: chips das compilações, a tendência dos tempos de compilação e uma tabela de projetos por compilação com variações coloridas, minigráficos e o caminho crítico

Escolher as compilações

Marque de 2 a 10 compilações em Histórico e pressione ⇄ Comparar N. Sem marcações, Comparar mostra a compilação exibida contra a comparável anterior. As compilações aparecem como chips no topo; ✕ tira uma da comparação.

A tendência e a tabela

Um pequeno gráfico mostra o tempo total de cada compilação. Abaixo, uma tabela de projetos × compilações: cada célula é colorida pela variação em relação à primeira compilação — mais quente é mais lento, verde é mais rápido — com um minigráfico, a variação e ● onde o projeto estava no caminho crítico. Projetos sem variação relevante ficam recolhidos em … mais N sem variação notável.

Só os projetos que importam para você

Projetos: … filtra a tabela: Todos os projetos (N), Alterados de forma notável (N), No caminho crítico (N) ou Só os marcados, com uma caixa de pesquisa. O filtro é lembrado por solução, e a tendência passa a somar o tempo dos projetos filtrados — a tendência dos seus projetos, não da solução inteira.

Um projeto ao longo das compilações

Clique em um projeto para ver as barras dele em cada compilação comparada; uma barra contornada significa que ele estava no caminho crítico daquela compilação. ‹ Todos os projetos volta.

Copiar como Markdown

⧉ Copiar coloca a tabela como você a vê — as mesmas compilações, o mesmo filtro — na área de transferência como uma tabela Markdown, pronta para um pull request ou um chat. Na visão de um único projeto, copia esse projeto.

Configurações

Ferramentas › Opções › SmithWorks › BuildSmith (ou ⚙ na janela Linha do tempo da compilação). Cada opção tem uma breve descrição do que faz.

OpçãoPadrão
Gravar compilaçõesativado
Não gravadas para:Nenhuma solução está desativada.
Manter compilações por:1 semana
Manter compilações rotuladasativado
Tempo na barra de statusativado
Apontar projetos que nunca estão atualizadosativado
Pedir uma avaliação no Marketplaceativado

Limpar todo o histórico (N soluções, tamanho)… exclui as compilações registradas de todas as soluções e pergunta se deve manter as rotuladas e as mantidas. Na parte de baixo: Restaurar padrões, Documentação, Avaliar no Marketplace e Enviar comentários.

As configurações e o histórico ficam em %LocalAppData%\BuildSmith.

A página de opções do BuildSmith
A página de opções.

Perguntas frequentes

O BuildSmith envia algum dado?

Não. Os tempos de compilação vêm dos eventos de compilação do Visual Studio e ficam no seu computador, em %LocalAppData%\BuildSmith. Sem requisições de rede, sem telemetria.

Por que não aparece a variação ao lado do tempo?

Ainda não há uma compilação comparável: o mesmo tipo (Compilar ou Recompilar), configuração, plataforma e branch. Compile mais uma vez e a variação aparece.

O que é exatamente o caminho crítico?

A cadeia de projetos pela qual a compilação teve que esperar: cada um só começou depois que o anterior terminou. A duração dele é o menor tempo que a compilação poderia ter com esses projetos, não importa quantos núcleos você tenha. Acelerar um projeto fora do caminho crítico não encurta a compilação.

A janela continua vazia depois de uma compilação.

Verifique se a gravação está ligada (⏻ na janela, Gravar compilações nas configurações) e se esta solução não está na lista Não gravadas para. Compilações iniciadas fora do Visual Studio (dotnet build na linha de comando) não são gravadas.

O BuildSmith deixa a compilação mais lenta?

Não. Ele escuta o início e o fim de cada projeto, que o Visual Studio informa de qualquer forma, e grava um pequeno arquivo depois da compilação. Não altera a compilação nem o log dela.

Quanto espaço em disco o histórico ocupa?

Muito pouco: uma compilação é uma lista curta de projetos com seus tempos. As configurações mostram o tamanho ao lado de Limpar todo o histórico, e as compilações antigas vão embora sozinhas depois do período escolhido.

Onde relato um problema ou sugiro um recurso?

Abra uma issue no repositório Feedback no GitHub — há formulários para bugs e ideias (troque nomes privados). Você também pode usar a aba Q&A no Marketplace.

Histórico de alterações

1.0.0