2010-07-21 2 views
6

Ich baue häufig ein riesiges Projekt auf, und dies dauert lange (mehr als eine Stunde), selbst nach dem Konfigurieren vorkompilierter Header. Gibt es irgendwelche Richtlinien oder Tricks, die es ermöglichen, parallel zu arbeiten (z. B. gcc im Hintergrund starten, ... etc), um schnellere Builds zu ermöglichen?Speedup GNU make Build-Prozess - Parallelität?

Hinweis: Quellen und Binärdateien sind zu groß, um in ein RAM-Dateisystem platziert zu werden, und ich möchte weder die Verzeichnisstruktur noch die Aufbauphilosophie ändern.

Antwort

4

make -jN ein jetzt muss, dass die meisten Maschinen Multi-Core sind. Wenn Sie nicht -jN jedes Mal schreiben möchten, können Sie

export MAKEFLAGS=-jN 

in Ihrem .bashrc setzen.

Sie können auch zur Kasse gehen distcc.

4

Wenn Ihr Projekt für eine Maschine zu groß wird, können Sie einen der verteilten Ersatzmarken verwenden, z. B. Electric Cloud.

5

können Sie

versuchen
make -j<number of jobs to run in parallel> 
0

Wenn Sie parallel laufen zu lassen Build wollen, tun

make -jN 

den Job, aber denken Sie daran:

  1. N soll die maximum number of threads your machine supports gleich sein, wenn Sie eine Zahl größer eingeben als make automatisch N=maximum number of threads your machine supports
  2. make unterstützt nicht paralleler Build mit -jN in MSDOS, es macht nur einen seriellen Build. Wenn Sie - jN angeben, wird N=1 heruntergestuft.

Lesen Sie hier mehr aus dem make Quelle: http://cmdlinelinux.blogspot.com/2014/04/parallel-build-using-gnu-make-j.html

+0

MSDOS = Windows und du bist falsch parallel machen in Punkt 2. – rubenvb

+0

@rubenvb: Ja, das weiß ich. Danke, dass du darauf hingewiesen hast, die Quelle erwähnte nur "MSDOS" und nicht "Windows", weiß nicht, warum ich das geschrieben habe, Korrigiert! – brokenfoot