Odpowiedzi:
Scott Gu pisał także o tym, co wpływa na szybkość budowania, wskazując głównie na zasoby we / wy, takie jak dysk twardy.
Czynnikiem, który znalazłem, robi największą różnicę, nie jest czynnik fizyczny, ale programowy: Który program antywirusowy zainstalowałeś?
Niektóre produkty antywirusowe nie radzą sobie zbyt dobrze z tworzeniem oprogramowania - widzą, że wszystkie pliki aplikacji są przepisywane, podejrzewają, że działają nieprawidłowo i za każdym razem skanują ponownie.
(Widzieć /programming/1170078/is-it-usual-for-aspx-files-to-take-5-10-seconds-to-save/1170129#1170129, aby uzyskać więcej.)
Z drugiej strony, jeśli chcesz poprawić wydajność istniejącej maszyny, nic nie przebije maksymalnego wykorzystania dostępnej pamięci do szybkiej wygranej.
Oto kilka ciekawych badań przeprowadzonych przez Scotta Hanselmana na temat używania wielu procesorów dla MSBUild. Przyspieszenia są dość dramatyczne.
Edycja: Należy jednak pamiętać, że aby dobrze korzystać z programu Visual Studio, potrzebujesz dużej ilości pamięci RAM. :)
Moje osobiste doświadczenie ze sporą bazą kodu C ++:
Procesor: Pentium 4 HT 3,06 GHz
Pamięć: 1 GB DDR RAM (PC 2100, więc 333 MHz)
Dysk: Dysk twardy 7200 RPM (UDMA 100, jeśli pamięć służy)
Czas kompilacji: 50 minut
Procesor: Core i7 720QM (8 procesorów logicznych) przy 1,6 GHz, turbo do 1,73 GHz, gdy wszystkie rdzenie są aktywne
Pamięć: 8 GB pamięci DDR3 RAM przy 1066 MHz
Dysk: 7200 obr./min dysk twardy (SATA 2)
Czas kompilacji: 4 minuty (z / MP )
Wniosek: im więcej procesorów, tym lepiej - nawet przy stosunkowo niskich częstotliwościach zegara. Dysk SSD poprawiłby czasy jeszcze bardziej, ale z obserwacji komunikatów kompilacyjnych wątpię, by poprawił go o ponad 30 sekund.
O ile pamiętam głównie procesor i pamięć. Szybkie google ujawniło różne poprawki, które mogą poprawić czasy kompilacji.
Joel niedawno napisał o wpływie dysków SSD na kompilacje tutaj . Szybkość dysku zasadniczo nie poprawia drastycznie czasu kompilacji. Jednak zgodnie z tym ma efekt, jak wskazał lyngbym .
W przypadku budowania programów w C ++ czynnik nr 1, zanim wszystko inne ma charakter strukturalny - jeśli kod źródłowy ma silną strukturę pionową, będzie miał druzgocący wpływ na czasy kompilacji, szczególnie kompilacje przyrostowe. Lokalnie zrestrukturyzowałem kilka części projektu, aby radykalnie ulepszyć czterordzeniowy Xeon. 18 miesięcy później i oni (ludzie, którzy są właścicielami projektu) nadal nie mogą dorównać moim czasom budowy zegarów ściennych, nawet na maszynach Core i7.
Efekt (pozytywny lub negatywny) układu oprogramowania mnoży się przez każdego członka zespołu i każdą kompilację, którą wykonują.
Xoreax IncrediBuild to rozproszony system kompilacji, który znacznie poprawił czasy kompilacji, w których pracuję. (Niestety czasy połączeń są wciąż dość długie, szczególnie kompilacje wydań wykorzystujące optymalizację całego programu i generowanie kodu czasu łącza, ale należy się tego spodziewać.)