So che questa non è una questione di programmazione, ma è rilevante.
Lavoro a un progetto multipiattaforma abbastanza grande . Su Windows utilizzo VC ++ 2008. Su Linux utilizzo gcc. Ci sono circa 40k file nel progetto. Windows è 10x a 40x più lento di Linux durante la compilazione e il collegamento dello stesso progetto. Come posso ripararlo?
Una singola modifica incrementale costruisce 20 secondi su Linux e> 3 minuti su Windows. Perché? Posso anche installare il linker "gold" su Linux e ridurre il tempo a 7 secondi.
Allo stesso modo git è 10x a 40x più veloce su Linux rispetto a Windows.
Nel caso git è possibile che git non stia usando Windows in modo ottimale ma VC ++? Penseresti che Microsoft vorrebbe rendere i propri sviluppatori il più produttivi possibile e una compilazione più veloce farebbe molto per questo. Forse stanno cercando di incoraggiare gli sviluppatori in C #?
Come semplice test, trova una cartella con molte sottocartelle e fai una semplice
dir /s > c:\list.txt
Su Windows. Fallo due volte e cronometra la seconda esecuzione in modo che venga eseguita dalla cache. Copia i file su Linux ed esegui le equivalenti 2 corse e cronometra la seconda.
ls -R > /tmp/list.txt
Ho 2 workstation con le stesse specifiche esatte. HP Z600s con 12 gig di ram, 8 core a 3.0 ghz. In una cartella con ~ 400k file Windows impiega 40 secondi, Linux impiega <1 secondo.
Esiste un'impostazione di registro che posso configurare per velocizzare Windows? Cosa dà?
Alcuni collegamenti leggermente rilevanti, pertinenti ai tempi di compilazione, non necessariamente I / O.
Apparentemente c'è un problema in Windows 10 (non in Windows 7) che la chiusura di un processo comporta un blocco globale . Durante la compilazione con più core e quindi più processi, questo problema ha esito positivo.
L'
/analyse
opzione può influire negativamente su perf perché carica un browser web . (Non pertinente qui ma buono a sapersi)