Nasz serwer kompilacji trwa zbyt długo, aby zbudować jeden z naszych projektów w języku C ++. Korzysta z programu Visual Studio 2008. Czy jest jakiś sposób, aby devenv.com rejestrowało czas potrzebny na zbudowanie każdego projektu w rozwiązaniu, aby wiedzieć, na czym mam skoncentrować swoje wysiłki?
Ulepszony sprzęt nie wchodzi w grę w tym przypadku.
Próbowałem ustawić szczegółowość danych wyjściowych (w obszarze Narzędzia / Opcje / Projekty i rozwiązania / Kompiluj i uruchom / Szczegółowość danych wyjściowych kompilacji projektu MSBuild). Wydaje się, że nie ma to żadnego wpływu na IDE.
Podczas uruchamiania programu MSBuild z wiersza polecenia (a w przypadku programu Visual Studio 2008 musi to być MSBuild v3.5) wyświetla łączny czas, który upłynął na końcu, ale nie w środowisku IDE.
Naprawdę potrzebowałem raportu z analizy czasu dla każdego projektu w rozwiązaniu, aby móc dowiedzieć się, gdzie proces kompilacji zajmuje dużo czasu.
Alternatywnie, skoro faktycznie używamy NAnt do kierowania procesem budowania (używamy Jetbrains TeamCity), czy istnieje sposób, aby NAnt podawał mi czas potrzebny na każdy krok?
źródło
Przejdź do Narzędzia → Opcje → Projekty i rozwiązania → Kompiluj i uruchamiaj → Szczegółowość danych wyjściowych kompilacji projektu MSBuild - ustaw na „Normalny” lub „Szczegółowy”, a czas kompilacji pojawi się w oknie wyników.
źródło
Visual Studio 2012-2019
W przypadku projektów MSBuild (np. Wszystkie projekty .Net):
kliknij,
Tools -> Options
a następnie wybierzProjects and Solutions -> Build and Run
. ZmieńMSBuild project build output verbosity
naNormal
. Dlatego będzie wyświetlać upływ czasu w każdym budowanym projekcie rozwiązania. Niestety, w całym projekcie nie ma sumy czasu, który upłynął. Zobaczysz również sygnaturę czasową rozpoczęcia budowyDLA PROJEKTU C / C ++:
Kliknij,
Tools -> Options
a następnie wybierzProjects and Solutions -> VC++ Project Settings
.Zmień
Build Timing
naYes
.źródło
Build Timing
ponieważ wyświetla ono tylko całkowity czas.W przypadku programu Visual Studio 2012 można użyć rozszerzenia Build Monitor .
źródło
Jeśli utkniesz na VS2005, możesz użyć wtyczki vs-build-timer . Po zakończeniu kompilacji pokazuje całkowity czas potrzebny i (opcjonalnie) podsumowanie każdego czasu trwania projektu.
Zrzeczenie się; Napisałem to. I tak, muszę stworzyć instalator ... pewnego dnia!
źródło
Narzędzia-> Opcje-> Projekty i rozwiązania-> Kompiluj i uruchamiaj->
Ustaw „Szczegółowość danych wyjściowych kompilacji projektu MSBuild” z „Minimalne” na „Normalne”
źródło
Jeśli chcesz zwizualizować swoją kompilację, możesz użyć IncrediBuild. IncrediBuild jest teraz dostępny w trybie autonomicznym (nie jest dystrybuowany, ale do użytku tylko na 8 rdzeniach na komputerze lokalnym) za darmo jako część Visual Studio 2015 Update 1
Zastrzeżenie: pracuję dla IncrediBuild
źródło
Ponieważ twoje pytanie dotyczy używania DevEnv z wiersza poleceń, sugerowałbym również użycie programu MSBuild (który może budować pliki .sln bez modyfikacji).
msbuild /?
pokaże inne przydatne opcje dla fileloggera.źródło
Stworzyłem rozszerzenie do mierzenia czasów kompilacji i przedstawiania kolejności zdarzeń na wykresie: Visual Studio Build Timer .
Jest dostępny na platformie Visual Studio Market i działa dla VS2015, VS2017 i VS2019.
Uważam, że prezentacja wizualna jest bardzo pomocna. Oprócz pokazania, które projekty trwają dłużej, pokazuje również zależności między nimi, tj. Projekty, które czekają na ukończenie innych, zanim rozpoczną. W ten sposób możesz dostrzec wąskie gardła w kompilacji i zobaczyć, jakie zależności muszą zostać zerwane, aby zwiększyć równoległość kompilacji.
źródło
Skończyło się tutaj, ponieważ chciałem po prostu uwzględnić datę i godzinę w wyniku kompilacji. Jeśli inni szukają czegoś podobnego, wystarczy dodać je
echo %date% %time%
do wydarzeń przed kompilacją i / lub po kompilacji w ramach projektu, Właściwości → Kompiluj → Buduj zdarzenia .źródło
Najpierw wykonaj kompilację i zobacz, który projekt pojawia się jako pierwszy w danych wyjściowych kompilacji ( Ctrl+ Homew oknie danych wyjściowych). Kliknij prawym przyciskiem myszy ten projekt → Właściwości projektu → skompilować → Build Wydarzenia → Pre-build . A
echo ###########%date% %time%#############
.Więc za każdym razem, gdy zobaczysz wyniki kompilacji (lub podczas kompilacji), wykonaj Ctrl+ Homew oknie wyjściowym. A gdzieś w tej okolicy godzina i data patrzą na twoją twarz!
Aha i możesz skończyć dodając te szczegóły do wielu projektów, ponieważ kolejność kompilacji może się zmienić :)
Znalazłem lepsze rozwiązanie! ###
Narzędzia → Opcje → Projekty i rozwiązania → Kompiluj i uruchamiaj → Szczegółowość danych wyjściowych kompilacji projektu MSBuild = Normalna (lub wyższa niż Minimalna ). Dodaje czas na początku / na górze okna wyjściowego. Ctrl+ Homew oknie wyjściowym powinno wystarczyć.
Jeśli chcemy zobaczyć, ile czasu zajmuje każdy projekt, wtedy Projekty i rozwiązania → Ustawienia projektu VC ++ → Czas kompilacji = tak . Ma zastosowanie do wszystkich projektów; „VC ++” jest mylące.
źródło
Jeśli chcesz wywołać zewnętrzny program, który może śledzić całkowity czas kompilacji, możesz użyć następującego rozwiązania dla VS 2010 (i może starszego). Poniższy kod wykorzystuje CTime autorstwa Casey Muratori. Oczywiście można go również użyć do wydrukowania czasu kompilacji.
Otwórz eksplorator makr i wklej wcześniej
End Module
:Odpowiedź zaczerpnięta stąd i tutaj .
źródło
Opcje -> Projekty i rozwiązania -> Ustawienia projektu VC ++ -> Czas kompilacji
źródło