Je construis un énorme projet fréquemment et cela prend beaucoup de temps (plus d'une heure) pour finir même après la configuration des en-têtes précompilés. Y a-t-il des directives ou astuces pour permettre de travailler en parallèle (par exemple en démarrant gcc en arrière-plan, ... etc) pour permettre des constructions plus rapides? Remarque: Les sources et les binaires sont trop volumineux pour être placés dans un système de fichiers RAM et je ne souhaite pas modifier la structure du répertoire ou la philosophie de construction.Speedup GNU make processus de construction - Parallélisme?
6
A
Répondre
4
make -jN
est un must maintenant que la plupart des machines sont multi-core. Si vous ne voulez pas écrire -jN
chaque fois, vous pouvez mettre
export MAKEFLAGS=-jN
dans votre .bashrc
. Vous pouvez également commander distcc.
4
Si votre projet devient trop volumineux pour être traité par une machine, vous pouvez utiliser l'un des remplacements de marques distribués, tels que Electric Cloud.
5
Vous pouvez essayer
make -j<number of jobs to run in parallel>
0
Si vous voulez exécuter votre construction en parallèle,
make -jN
fait le travail, mais gardez à l'esprit:
N
doit être égale à lamaximum number of threads your machine supports
, si vous entrez un plus grand nombre que cela,make
fait automatiquementN=maximum number of threads your machine supports
make
ne prend pas en charge la construction parallèle en utilisant-jN
enMSDOS
, il fait juste une construction en série. Si vous spécifiez -jN
, il sera dégradéN=1
.
En savoir plus ici, de la source make
: http://cmdlinelinux.blogspot.com/2014/04/parallel-build-using-gnu-make-j.html
MSDOS = Windows et vous avez tort marque parallèle au point 2. – rubenvb
@rubenvb: Oui, je sais. Merci de l'avoir signalé, la source ne mentionne que "MSDOS" et non "windows", je ne sais pas pourquoi j'ai écrit ça, corrigé! – brokenfoot