Scott Gu também postou sobre o que afeta a velocidade de construção, apontando principalmente para recursos de I / O como o disco disco.
Quais especificações do PC têm o maior impacto nos tempos de compilação? Disco? Velocidade do relógio? Número de núcleos da CPU?
Scott Gu também postou sobre o que afeta a velocidade de construção, apontando principalmente para recursos de I / O como o disco disco.
O fator que eu encontrei faz a maior diferença não é um fator físico, mas um fator de software: qual antivírus você instalou?
Alguns produtos antivírus não lidam muito bem com o desenvolvimento de software - eles veem todos esses arquivos de aplicativo sendo reescritos, suspeitam de um jogo sujo e fazem uma nova varredura de todos os arquivos todas as vezes.
(Veja link para mais.)
Por outro lado, se você deseja melhorar o desempenho de uma máquina existente, nada supera a memória disponível para uma vitória rápida.
Aqui está uma boa pesquisa de Scott Hanselman sobre o uso de várias CPUs para MSBUild. As acelerações são bem dramáticas.
Editar: devo observar, no entanto, que, para ter uma boa experiência usando o Visual Studio, você precisa de muita memória RAM. :)
Minha experiência pessoal com uma base de código C ++ de tamanho razoável:
Processador: Pentium 4 HT 3.06 GHz
Memória: 1 GB de RAM DDR (PC 2100, portanto, 333 MHz)
Disco: < disco rígido de 7200 RPM (UDMA 100, se a memória funcionar)
Tempo de compilação: 50 minutos
Processador: Core i7 720QM (8 processadores lógicos) a 1,6 GHz, turbo boost a 1,73 GHz quando todos os núcleos estão ativos
Memória: 8 GB de RAM DDR3 a 1066 MHz
Disco: Disco rígido de 7200 RPM (SATA 2)
Tempo de compilação: 4 minutos (com / MP )
Conclusão: Quanto mais processadores, melhor, até mesmo em velocidades de clock relativamente baixas. Um SSD melhoraria ainda mais, mas a partir da observação das mensagens de compilação, duvido que melhoraria em mais de 30 segundos.
Tanto quanto me lembro principalmente processador e memória. Um rápido google revelou vários ajustes que podem melhorar os tempos de compilação.
Joel postou recentemente sobre o efeito dos discos de estado sólido em compilações aqui . A velocidade do disco geralmente não melhora drasticamente o tempo de compilação. No entanto, de acordo com ele tem um efeito como apontado por lyngbym .
Para construir programas em C ++, o fator número 1 antes de tudo é estrutural - se o código-fonte for strongmente estruturado verticalmente, ele terá um impacto devastador nos tempos de construção, especialmente construções incrementais. Eu localmente reestruturei algumas partes de um projeto para uma melhoria dramática em um Xeon quad-core. 18 meses depois e eles (as pessoas que possuem o projeto) ainda não conseguem igualar os tempos de construção do meu relógio de parede, nem mesmo nas máquinas Core i7.
O efeito (positivo ou negativo) de seu layout de software se multiplica em todos os membros de sua equipe e em todas as construções que eles executam.
O Xoreax IncrediBuild é um sistema de compilação distribuído que melhorou muito os tempos de compilação em que trabalho. (Infelizmente, os tempos de link ainda são muito longos, particularmente versões de lançamento usando otimização de programa completo e geração de código de tempo de link, mas isso é esperado.)