Eu sei que isso não é tanto uma questão de programação, mas é relevante.
Trabalho em um projeto de plataforma cruzada bastante grande . No Windows, uso o VC ++ 2008. No Linux, uso o gcc. Existem cerca de 40k arquivos no projeto. O Windows é 10x a 40x mais lento que o Linux na compilação e vinculação do mesmo projeto. Como posso consertar isso?
Uma construção incremental de uma única alteração 20 segundos no Linux e> 3 minutos no Windows. Por quê? Posso até instalar o vinculador 'gold' no Linux e reduzir esse tempo para 7 segundos.
Da mesma forma, o git é 10 a 40 vezes mais rápido no Linux que no Windows.
No caso do git, é possível que o git não esteja usando o Windows da maneira ideal, mas o VC ++? Você acha que a Microsoft gostaria de tornar seus próprios desenvolvedores o mais produtivos possível e uma compilação mais rápida ajudaria bastante nisso. Talvez eles estejam tentando incentivar os desenvolvedores a usar C #?
Como teste simples, encontre uma pasta com muitas subpastas e faça um simples
dir /s > c:\list.txt
no Windows. Faça isso duas vezes e cronometre a segunda execução para que seja executada no cache. Copie os arquivos para o Linux e faça 2 execuções equivalentes e cronometre a segunda execução.
ls -R > /tmp/list.txt
Eu tenho 2 estações de trabalho com exatamente as mesmas especificações. HP Z600s com 12gig de ram, 8 núcleos a 3,0ghz. Em uma pasta com ~ 400k arquivos, o Windows leva 40 segundos, o Linux leva <1 segundo.
Existe uma configuração de registro que eu possa definir para acelerar o Windows? O que da?
Alguns links levemente relevantes, relevantes para os tempos de compilação, não necessariamente de E / S.
Aparentemente, há um problema no Windows 10 (não no Windows 7) que fechar um processo mantém um bloqueio global . Ao compilar com vários núcleos e, portanto, com vários processos, esse problema ocorre.
A
/analyse
opção pode afetar adversamente o perf porque carrega um navegador da web . (Não é relevante aqui, mas é bom saber)