2009-07-29 28 views
5

Starsza aplikacja, nad którą pracuję, trwa około 2 godzin. Projekt ma około 170 projektów, z których około 150 to niezarządzane C++, a pozostałe 30 C# .Net 2.0.Sposoby przyspieszenia czasu budowy? (C#/Unmanaged C++)

Jakie są sugestie dotyczące sposobów poprawy czasów budowy w przypadku czegoś takiego?

+1

podobne pytania zostały zadane wcześniej. Przeszukaj "incredibuild", aby znaleźć ich kilka. – crashmstr

+0

Czy często trzeba budować od zera, czy przyrostowe kompilacje są wolne? –

+0

Musimy budować od zera dość często. Ilekroć zmiana ma być QC'd, potrzebujemy pełnej kompilacji. – Kyle

Odpowiedz

8

skupić się na projektach C++ - są niemal gwarancją największe odpływy czasowe dla budynku.

Kilka porad na temat C++ zbudować razy w dół:

  • Upewnij się, że jesteś w tym tylko nagłówków, które trzeba w projektach C++!
  • używane są zgłoszeń w miarę możliwości w nagłówkach zamiast łącznie z innymi nagłówków
  • pomocą/MP przełączania zbudować równolegle, jeżeli to możliwe
  • Zastosowanie poboru skutecznie
  • Należy oszczędzając na zastosowaniu funkcji rolkach, ponieważ są droższe w czasie kompilacji
  • Get zależności prawidłowe, więc nie budujemy coraz częściej wymagana
  • Użyj wstępnie skompilowana nagłówki odpowiednio

Poza tym, jeśli mówimy 2 razy godzin budować, często nie jest proste, tanie (w wielkim stylu obrazu) rozwiązanie, a także:

  • Upgrade sprzętu, aby pomóc skrócić czas obliczeń
+0

100% zgadzam się. Z jakiego kompilatora korzystasz? Sprawdź odpowiednie systemy buforowania kompilatora (np.ccash dla gcc) Dyski SSD dla serwera kompilacji warto sprawdzić na –

+0

Używam głównie MSVC, ale większość z powyższych argumentów to ogólne strategie kompilacji C++. Pytanie było jednak prawdopodobnie związane z MSVC, ponieważ było to mieszanie C++ i C#. –

2

Możesz spróbować rozproszonego systemu gromadzenia Incredibuild: http://www.xoreax.com/visual_studio.htm

+0

Czy to działa również w przypadku łączenia? Niektóre z moich denerwujących czasów kompilacji wynikają z łączenia. –

0

Tworzenie wielu rozwiązań dla projektu, który tylko zawierać odpowiednie podzbiory projektów i zostawić jedno rozwiązanie SUPER wydań itp

4

Jeśli zainstalujesz IncrediBuild na każdym komputerze, który musi zbudować rozprowadza proces budowania wśród wszystkie maszyny. Jeśli naprawdę chcesz po prostu rzucić sprzęt na problem, możesz skonfigurować kilka dedykowanych maszyn, które służą tylko jako klienci IncrediBuild.

W innej skali, upewnij się, że każdy projekt ma wstępnie skompilowane nagłówki skonfigurowane poprawnie.

2

Możesz użyć narzędzia takiego jak lint, aby sprawdzić, czy masz nadmiarowe pliki dołączane do projektów C++.

Istnieje również świetny artykuł na ten temat pod adresem Games from Within.

+0

Hmm, to wygląda całkiem interesująco. Dziękuję Ci. – Kyle

Powiązane problemy