Pergunta

Um aplicativo legado que eu estou trabalhando em currenty leva ~ 2 horas para construir. O projecto tem cerca de 170 projectos com 150 ou de modo a ser não gerido C ++ e o outro de 30 C # Net 2.0.

O que são algumas sugestões sobre formas de melhorar o tempo de construção para algo assim?

Foi útil?

Solução

foco no C ++ projectos -. Eles são quase garantida a ser os maiores drenos de tempo para a construção

Algumas dicas sobre como tirar o C ++ tempo de construção para baixo:

  • Certifique-se que você só está incluindo cabeçalhos que você precisa nos projetos C ++!
  • Use declarações para a frente sempre que possível nos cabeçalhos ao invés de incluir outros cabeçalhos
  • Use a opção / MP para construir em paralelo, quando possível
  • Use abstração efetivamente
  • Esteja poupar no uso de funções inline, uma vez que estes custos mais em tempo de compilação
  • Obter as dependências corretas, então você não está construindo mais frequentemente que necessário
  • Uso cabeçalhos pré-compilado apropriadamente

Além de que, se você está falando 2 vezes horas construir, muitas vezes há uma solução simples, barata (de uma forma grande imagem), assim:

  • Atualize seu hardware para ajudar a reduzir os tempos de computação

Outras dicas

Se você instalar IncrediBuild em cada máquina que precisa construí-lo, ele distribui o processo de construção entre todos das máquinas. Se você realmente quiser jogar apenas hardware para o problema, você pode configurar algumas máquinas dedicadas que servem apenas como clientes IncrediBuild.

Em uma escala diferente, faça cabeçalhos certeza que todos os seu projeto tem pré-compilados configurado corretamente.

Você pode experimentar o sistema de compilação distribuída IncrediBuild: http://www.xoreax.com/visual_studio. htm

Você pode usar uma ferramenta como fiapos para ver se você tem redundante incluir arquivos em projetos de seu c ++.

Há também um ótimo artigo sobre este assunto em Jogos de dentro .

Faça múltiplas soluções para o projeto que incluem apenas subconjuntos relevantes dos projectos e deixar uma solução super para lançamentos etc.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top