BuildSmith
Co robiła kompilacja i dlaczego trwała tak długo. Po każdej kompilacji pasek stanu pokazuje jej czas i zmianę względem poprzedniej; okno Oś czasu kompilacji pokazuje wszystkie projekty na osi czasu — które szły równolegle, które czekały i jaka ścieżka krytyczna przesądziła o łącznym czasie.
Bezpłatnie · Visual Studio 2022 i 2026 · 14 języków interfejsu · bez telemetrii
Dlaczego BuildSmith

Gdzie poszedł czas
Okno „Dane wyjściowe” mówi, że kompilacja trwała 1 min 48 s. Oś czasu mówi, które projekty ten czas zajęły, które z nich szły obok siebie i na jaki łańcuch projektów musiała czekać cała kompilacja.
Porównanie z podobną kompilacją
Kompilacja Debug na main jest porównywana z poprzednią kompilacją Debug na main — a nie z ponowną kompilacją, kompilacją Release czy inną gałęzią. Dlatego ▲ 4.1 s coś znaczy.
Cicho
Żadne okno nie otwiera się samo, nic nie wyskakuje: jeden wiersz na pasku stanu po kompilacji. Gdy rejestrowanie jest wyłączone, BuildSmith naprawdę śpi — nawet nie nasłuchuje zdarzeń kompilacji.
Bezpłatnie, bez haczyków
Bez subskrypcji, bez wersji „pro”, bez zbierania danych i bez komunikatów w oknie „Dane wyjściowe” ani przy uruchamianiu. Historia zostaje na Twoim komputerze. Jedyne, o co kiedykolwiek poprosimy — gdy już przez jakiś czas będziesz z niego korzystać — to ocena w Marketplace. Działa w Visual Studio 2022 i 2026, x64 i ARM64.
Funkcje
- Czas na pasku stanu po każdej kompilacji, ze zmianą względem poprzedniej porównywalnej kompilacji:
⏱ 1 min 48 s (▲ 4.1 s). - Okno „Oś czasu kompilacji”: po jednym pasku na projekt w kolejności uruchomienia, obrysowana ścieżka krytyczna, zakreskowane aktualne projekty, nieudane na czerwono, a przy każdym pasku zmiana względem poprzedniej kompilacji.
- Nigdy nie aktualne: projekty kompilowane przy każdej kompilacji przyrostowej, choć większość rozwiązania była aktualna — i ile kosztują przy każdej kompilacji.
- Historia wszystkich kompilacji rozwiązania, domyślnie przechowywana przez tydzień: wyszukiwanie, zakresy dat, kalendarz i paski, po których od razu widać, która kompilacja była wolna.
- Etykiety — „przed poprawką”, „nowy SDK” — w jednym z pięciu kolorów lub własnym; kompilacja z etykietą lub zachowana nigdy nie jest usuwana ze względu na wiek.
- Porównanie od 2 do 10 kompilacji: trend łącznych czasów i tabela projekty × kompilacje z kolorowymi zmianami, wykresami przebiegu i ścieżką krytyczną — do skopiowania jako Markdown do pull requesta.
- Wyłączanie bez odinstalowania: dla jednego rozwiązania lub wszędzie; historia zostaje.
Kompilacja w skrócie
Otwórz Kompilacja › Oś czasu kompilacji (także w Widok › Inne okna i na pasku narzędzi SmithWorks). Okno pokazuje ostatnią kompilację — lub dowolną z historii — z podsumowaniem u góry i jednym paskiem na projekt poniżej.

Czas na pasku stanu
Po każdej kompilacji pasek stanu Visual Studio pokazuje jej czas i zmianę względem poprzedniej porównywalnej kompilacji: ⏱ 1 min 48 s (▲ 4.1 s) — ▲ wolniej, ▼ szybciej. To jedyna rzecz, którą BuildSmith pokazuje sam, i można ją wyłączyć w ustawieniach.
Porównywalna oznacza ten sam rodzaj kompilacji (kompilacja lub ponowna kompilacja), tę samą konfigurację, tę samą platformę i tę samą gałąź Git. Jeśli takiej kompilacji jeszcze nie ma, pokazywany jest tylko czas.
Nagłówek
Górna część okna podsumowuje pokazaną kompilację:
| Na ekranie | Znaczenie |
|---|---|
| ✓ 1 min 48 s ▲ 4.1 s wobec poprzedniej | Wynik (powodzenie lub błąd), łączny czas i plakietka ze zmianą względem poprzedniej porównywalnej kompilacji; jej etykietka mówi, ile tamta kompilacja trwała i kiedy była. |
| Projekty: 14 · skompilowane: 9 · aktualne: 5 · z błędami: 1 | Ile projektów brało udział, ile naprawdę skompilowano, ile pominięto jako aktualne i ile się nie powiodło. |
| ścieżka krytyczna 1 min 31 s · Debug · Any CPU · main | Długość ścieżki krytycznej, a potem konfiguracja, platforma i gałąź Git kompilacji. |
| Wybór kompilacji | Dowolna zarejestrowana kompilacja rozwiązania: oś czasu przełącza się na nią. |
| 🏷 ⏻ ⚙ | 🏷 nadaje etykietę pokazanej kompilacji, ⏻ włącza lub wyłącza rejestrowanie, ⚙ otwiera ustawienia. |
Paski
| Na ekranie | Znaczenie |
|---|---|
| Niebieski pasek | Projekt, który był kompilowany, po jednym wierszu na projekt w kolejności uruchomienia: pasek zaczyna się tam, gdzie projekt naprawdę się zaczął po starcie kompilacji, i jest tak długi, jak długo trwał. Nakładające się paski szły równolegle, więc widać, jak bardzo równoległa była kompilacja. |
| Pomarańczowy obrys | Ścieżka krytyczna: łańcuch projektów, z których każdy czekał na poprzedni, przesądzający o łącznym czasie. Przyspieszenie któregoś z nich przyspiesza kompilację; pozostałe projekty szły równolegle. |
| Zakreskowany odcinek | Aktualny: pominięty, nic się w nim nie zmieniło. |
| Czerwony pasek | Kompilacja projektu się nie powiodła. |
| ▲ 2.4 s | Obok każdego paska: jego czas oraz, jeśli jest zauważalna, zmiana względem tego samego projektu w poprzedniej porównywalnej kompilacji. |
Najedź na pasek, aby zobaczyć szczegóły: ile trwał projekt, od kiedy do kiedy po starcie kompilacji, zmianę względem poprzedniej kompilacji i czy był na ścieżce krytycznej.
Okno może być otwarte podczas pracy: samo przechodzi do każdej nowej kompilacji. Karty Oś czasu, Porównanie i Historia są u góry.
Nigdy nie aktualne
Niektóre projekty są kompilowane przy każdej kompilacji, nawet gdy nic się w nich nie zmieniło. Za każdym razem kosztuje to kilka sekund i nikt tego nie zauważa. BuildSmith zauważa: nad osią czasu kompilacji przyrostowej pasek informuje, ile jest takich projektów i ile kosztują przy każdej kompilacji. Rozwija się w listę projektów; ich wiersze na osi czasu dostają znak ⟳.

Reguła: projekt jest wskazywany, gdy był kompilowany w każdej z ostatnich 3–5 kompilacji przyrostowych tej samej konfiguracji i gałęzi, a ponad połowa rozwiązania była aktualna. Ponowne kompilacje się nie liczą — tam wszystko jest kompilowane celowo.
Typowe przyczyny:
- plik z Kopiuj do katalogu wyjściowego: Zawsze kopiuj — wystarczy Kopiuj, jeśli nowszy;
- krok przed kompilacją lub po niej, który dotyka pliku, od którego zależy projekt;
- kod generowany przy każdej kompilacji, nawet gdy jego źródło się nie zmieniło.
Naprawienie tego oszczędza ten czas przy każdej kompilacji. Pasek można wyłączyć w ustawieniach: Wskazuj projekty, które nigdy nie są aktualne.
Historia
Karta Historia wyświetla zarejestrowane kompilacje rozwiązania, od najnowszych, pogrupowane według dni. Każdy wiersz pokazuje godzinę, rodzaj kompilacji, konfigurację i gałąź, etykietę oraz pasek proporcjonalny do czasu kompilacji — wolna kompilacja od razu się wyróżnia.

Znajdź kompilację
Wpisz tekst w polu wyszukiwania — każde słowo musi się znaleźć w etykiecie, gałęzi, konfiguracji lub rodzaju kompilacji. Zawęź według daty przyciskami Dziś, Wczoraj i dziś, 7 dni lub Wszystkie albo wybierz daty w kalendarzu (Daty…). Tylko z etykietą zostawia kompilacje, którym nadano etykietę.
Otwieranie, etykiety, zachowywanie, usuwanie
Kliknij kompilację (lub naciśnij Enter), aby otworzyć ją na osi czasu. Prawy przycisk myszy daje Otwórz na osi czasu, Etykieta…, Zachowaj (nigdy nie usuwaj) i Usuń. Klawisz Delete usuwa kompilację, a przez kilka sekund dostępne jest Cofnij. Menu ⋯ usuwa kompilacje starsze niż wybrana data, czyści historię tego rozwiązania lub wszystkich rozwiązań.
Zaznacz kompilacje, aby je porównać lub usunąć kilka naraz. Zaznacz z etykietą zaznacza każdą pokazaną kompilację z etykietą — najszybszy sposób, by porównać „przed” i „po”.
Jak długo kompilacje są przechowywane
Kompilacje są przechowywane tylko na tym komputerze, w %LocalAppData%\BuildSmith, osobna historia dla każdego rozwiązania — przez 1 dzień, 3 dni, 1 tydzień (domyślnie), 2 tygodnie lub 1 miesiąc. Starsze kompilacje są usuwane przy otwarciu rozwiązania lub po zakończeniu kompilacji. Kompilacje z etykietą i zachowane zostają niezależnie od wieku.
Etykiety
🏷 w nagłówku (lub Etykieta… w menu historii) nadaje kompilacji krótki tekst i kolor: jeden z pięciu albo własny, wybrany w małym selektorze z paletą i ostatnimi kolorami. Ostatnio używane etykiety są proponowane ponownie jednym kliknięciem, więc seria kompilacji może mieć wspólną etykietę.
Kompilacja z etykietą nigdy nie jest usuwana ze względu na wiek (chyba że wyłączysz Zachowuj kompilacje z etykietą). Zachowaj (nigdy nie usuwaj) przypina kompilację bez etykiety.
Rejestrowanie
⏻ w nagłówku decyduje, czy kompilacje są rejestrowane:
| Wybór | Co się dzieje |
|---|---|
| Rejestruj kompilacje | Domyślnie: każda kompilacja jest mierzona i zapisywana w historii. |
| Nie dla tego rozwiązania | To rozwiązanie nie jest już rejestrowane; pozostałe nadal tak. Ustawienia wyświetlają listę takich rozwiązań z przyciskiem Rejestruj ponownie. |
| Wyłącz wszędzie | BuildSmith śpi we wszystkich rozwiązaniach. |
Uśpiony BuildSmith naprawdę nic nie robi: nie subskrybuje zdarzeń kompilacji, nie zapisuje niczego na pasku stanu ani na dysku. Historia zostaje, a okno proponuje Znów rejestruj kompilacje.
Porównywanie kompilacji
Karta Porównanie zestawia kompilacje obok siebie: czy poprawka pomogła, który projekt zwolnił po aktualizacji, jak zmieniał się czas kompilacji w ciągu tygodnia.

Wybierz kompilacje
Zaznacz od 2 do 10 kompilacji na karcie Historia i naciśnij ⇄ Porównaj (N). Bez zaznaczeń karta „Porównanie” zestawia pokazaną kompilację z poprzednią porównywalną. Kompilacje pojawiają się u góry jako kafelki; ✕ usuwa kompilację z porównania.
Trend i tabela
Mały wykres pokazuje łączny czas każdej kompilacji. Pod nim tabela projekty × kompilacje: każda komórka jest pokolorowana według zmiany względem pierwszej kompilacji — cieplejszy kolor to wolniej, zielony to szybciej — z wykresem przebiegu, zmianą i ● tam, gdzie projekt był na ścieżce krytycznej. Projekty bez zauważalnej zmiany są zwinięte w … jeszcze N bez wyraźnej zmiany.
Tylko projekty, które Cię interesują
Projekty: … filtruje tabelę: Wszystkie projekty (N), Wyraźnie zmienione (N), Na ścieżce krytycznej (N) lub Tylko zaznaczone, z polem wyszukiwania. Filtr jest zapamiętywany dla każdego rozwiązania, a trend sumuje wtedy czas przefiltrowanych projektów — to trend Twoich projektów, a nie całego rozwiązania.
Jeden projekt we wszystkich kompilacjach
Kliknij projekt, aby zobaczyć jego paski w każdej porównywanej kompilacji; obrysowany pasek oznacza, że w tej kompilacji był na ścieżce krytycznej. ‹ Wszystkie projekty wraca.
Kopiowanie jako Markdown
⧉ Kopiuj umieszcza tabelę w takiej postaci, w jakiej ją widzisz — te same kompilacje, ten sam filtr — w schowku jako tabelę Markdown, gotową do pull requesta lub czatu. W widoku jednego projektu kopiuje ten projekt.
Ustawienia
Narzędzia › Opcje › SmithWorks › BuildSmith (lub ⚙ w oknie „Oś czasu kompilacji”). Każda opcja ma krótki opis tego, co robi.
| Opcja | Domyślnie |
|---|---|
| Rejestruj kompilacje | wł. |
| Nierejestrowane dla: | Żadne rozwiązanie nie jest wyłączone. |
| Przechowuj kompilacje przez: | 1 tydzień |
| Zachowuj kompilacje z etykietą | wł. |
| Czas na pasku stanu | wł. |
| Wskazuj projekty, które nigdy nie są aktualne | wł. |
| Proś o ocenę w Marketplace | wł. |
Wyczyść całą historię (rozwiązania: N, rozmiar)… usuwa zarejestrowane kompilacje wszystkich rozwiązań i pyta, czy zachować te z etykietą i zachowane. Na dole: Przywróć domyślne, Dokumentacja, Oceń w Marketplace i Wyślij opinię.
Ustawienia i historia są przechowywane w %LocalAppData%\BuildSmith.

FAQ
Czy BuildSmith wysyła jakiekolwiek dane?
Nie. Czasy kompilacji są pobierane ze zdarzeń kompilacji Visual Studio i przechowywane na Twoim komputerze, w %LocalAppData%\BuildSmith. Bez żądań sieciowych, bez telemetrii.
Dlaczego obok czasu nie ma zmiany?
Nie ma jeszcze porównywalnej kompilacji: tego samego rodzaju (kompilacja lub ponowna kompilacja), konfiguracji, platformy i gałęzi. Skompiluj jeszcze raz, a zmiana się pojawi.
Czym dokładnie jest ścieżka krytyczna?
Łańcuchem projektów, na które kompilacja musiała czekać: każdy zaczynał się dopiero po zakończeniu poprzedniego. Jego długość to najkrótszy możliwy czas kompilacji z tymi projektami, niezależnie od liczby rdzeni. Przyspieszenie projektu spoza ścieżki krytycznej nie skraca kompilacji.
Po kompilacji okno pozostaje puste.
Sprawdź, czy rejestrowanie jest włączone (⏻ w oknie, Rejestruj kompilacje w ustawieniach) i czy tego rozwiązania nie ma na liście Nierejestrowane dla. Kompilacje uruchomione poza Visual Studio (dotnet build w wierszu poleceń) nie są rejestrowane.
Czy BuildSmith spowalnia kompilację?
Nie. Nasłuchuje początku i końca każdego projektu, które Visual Studio i tak zgłasza, a po kompilacji zapisuje jeden mały plik. Nie zmienia kompilacji ani jej rejestrowania.
Ile miejsca na dysku zajmuje historia?
Bardzo mało: kompilacja to krótka lista projektów z ich czasami. Ustawienia pokazują rozmiar obok Wyczyść całą historię, a stare kompilacje znikają same po wybranym okresie.
Gdzie zgłosić problem lub zaproponować funkcję?
Otwórz zgłoszenie w repozytorium Feedback na GitHubie — są tam formularze dla błędów i pomysłów (prosimy zmienić prywatne nazwy). Możesz też skorzystać z karty Q&A w Marketplace.
Historia zmian
1.0.0
- Pierwsze wydanie: czas kompilacji i jego zmiana na pasku stanu, okno „Oś czasu kompilacji” ze ścieżką krytyczną, projekty, które nigdy nie są aktualne, historia z wyszukiwaniem, datami i etykietami, porównanie do 10 kompilacji z kopiowaniem jako Markdown, włączanie i wyłączanie rejestrowania dla każdego rozwiązania, pasek narzędzi SmithWorks, jednorazowa prośba o ocenę.