Quais componentes do PC causam maior impacto nos tempos de compilação do Visual Studio?

16

Quais especificações de PC têm o maior impacto nos tempos de compilação? Disco? Velocidade do relógio? Número de núcleos de CPU?

Rob Allen
fonte
11
Isso não é uma questão de programação? Teria um público maior no StackOverflow?
Kurt W. Leucht

Respostas:

13

O fator que encontrei faz a maior diferença não é um fator físico, mas um software: qual antivírus você instalou?

Alguns produtos antivírus não lidam muito bem com o desenvolvimento de software - eles vêem todos esses arquivos de aplicativos sendo reescritos, suspeitam de erros e analisam todos os arquivos todas as vezes.

(Consulte /programming/1170078/is-it-usual-for-aspx-files-to-take-5-10-seconds-to-save/1170129#1170129 para obter mais informações.)

Por outro lado, se você deseja melhorar o desempenho de uma máquina existente, nada supera a maximização da memória disponível para uma rápida vitória.

Bevan
fonte
O PC no escritório está usando o TrendMicro OfficeScan. Meu laptop dev em casa está usando o AVG 8.
Rob Allen
3
"Trend Micro". Oh céus. Se você não conseguir mudar isso para outra coisa, dê adeus a qualquer apresentação.
Bevan
8

Aqui estão algumas pesquisas interessantes de Scott Hanselman sobre o uso de várias CPUs no MSBUild. As acelerações são bastante dramáticas.

Editar: devo observar, no entanto, que, para ter uma boa experiência com o Visual Studio, você precisa de bastante RAM. :)

JP Alioto
fonte
+1 Bom artigo sobre o tema. Eu esqueci disso. Eu acho que ele também fez um podcast sobre isso.
BinaryMisfit 30/07/2009
4

Minha experiência pessoal com uma base de código C ++ de tamanho justo:

Máquina velha

Processador: Pentium 4 HT 3.06 GHz
Memória: 1 GB DDR RAM (PC 2100, portanto 333 MHz)
Disco: disco rígido de 7200 RPM (UDMA 100, se a memória servir)
Tempo de compilação: 50 minutos

Nova máquina:

Processador: Core i7 720QM (8 processadores lógicos) a 1,6 GHz, aumento turbo para 1,73 GHz quando todos os núcleos estão ativos
Memória: 8 GB DDR3 RAM 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 - mesmo a velocidades relativamente baixas. Um SSD melhoraria ainda mais os tempos, mas, a partir da observação das mensagens de compilação, duvido que o melhore em mais de 30 segundos.

mmyers
fonte
3

Tanto quanto me lembro principalmente de 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 de discos de estado sólido nas compilações aqui . A velocidade do disco geralmente não melhora drasticamente o tempo de compilação. No entanto, de acordo com isso, ele tem um efeito, como indicado pelo lyngbym .

BinaryMisfit
fonte
1

Para a criação de programas em C ++, o fator nº 1 antes de tudo é estrutural - se o código-fonte for fortemente estruturado verticalmente, ele terá um impacto devastador nos tempos de compilação, especialmente compilações incrementais. Reestruturei localmente algumas partes de um projeto para uma melhoria dramática em um Xeon quad-core. 18 meses depois e eles (as pessoas que são donas do projeto) ainda não conseguem igualar meus tempos de construção de relógio de parede, mesmo nas máquinas Core i7.

O efeito (positivo ou negativo) do layout do software se multiplica em todos os membros da sua equipe e em todas as compilações que eles executam.

Sam Harwell
fonte
Você tem um link que descreva diferentes estruturas de código, por favor. Acho que sei a que você está se referindo, mas não tenho certeza.
Rob Allen
Estou tendo problemas para encontrar minhas referências, mas a idéia geral é 1) usar declarações de encaminhamento sempre que possível, 2) incluir arquivos somente quando uma declaração de encaminhamento não funcionar e 3) garantir que o arquivo que você incluir não declare mais coisas além do necessário, o que, por sua vez, pode incluir mais arquivos que você não precisa para o arquivo de origem específico sendo compilado (ou seja, mantenha os cabeçalhos pequenos e use declarações avançadas neles, exatamente como você faz nos arquivos de origem).
21310 Sam Harwell
1

O Xoreax IncrediBuild é um sistema de compilação distribuído que fez uma grande melhoria nos tempos de compilação em que trabalho. (Infelizmente, os tempos de link ainda são bastante longos, principalmente as versões lançadas usando a otimização de todo o programa e a geração de código de tempo de link, mas isso é de se esperar.)

texto alternativo

bk1e
fonte