Velocizzare la compilazione

From FreeCAD Documentation
Revision as of 09:30, 14 November 2019 by Mario52 (talk | contribs) (Created page with "Utilizzare {{incode|cmake-gui}}, {{incode|cmake-curses-gui}} o {{incode|cmake-qt-gui}} per visualizzare tutte le possibili variabili che possono essere modificate nella config...")

FreeCAD è una grande applicazione che può richiedere da 10 minuti a un'ora per essere compilata completamente dal sorgente. Ciò dipende principalmente dalla CPU in uso e dal numero di core utilizzati nel processo di compilazione. Ecco alcuni suggerimenti per abbreviare tale processo e ridurre i tempi di costruzione.

CCache

Installare ccache per la costruzione cache

Disabilitare i moduli

Quando si utilizza cmake per configurare la build, è possibile disabilitare la compilazione di alcuni ambienti che al momento potrebbero non essere necessari. Questo è utile se si vuole solo testare alcuni ambienti di lavoro.

Ad esempio, per evitare di costruire i banchi di lavoro FEM e Mesh:

cmake -DBUILD_FEM=OFF -DBUILD_MESH=OFF ../freecad-source

Utilizzare cmake-gui, cmake-curses-gui o cmake-qt-gui per visualizzare tutte le possibili variabili che possono essere modificate nella configurazione; utilizzando queste interfacce è possibile attivare o disattivare facilmente diversi banchi di lavoro.

Numero di lavori in parallelo

Dopo la configurazione fatta con cmake, il programma make avvia il compilatore C++ effettivo per lavorare sui file del codice sorgente. Si può velocizzare la compilazione lavorando su vari file contemporaneamente. Ciò si ottiene con l'opzione -j di make, che indica il numero di "lavori" o comandi di compilazione eseguiti contemporaneamente. Questa opzione è un numero intero.

Run four compilation commands in parallel:

make -j4

Compile as many files in parallel as the number of CPU cores in your system. This is useful if you have many cores and want to use them all to compile the software.

make -j$(nproc)

Compile as many files in parallel as the number of CPU cores in your system, minus two. Use this so that your system is still responsive to do some other task; for example, two cores will allow you to use a browser, while the rest of the cores keep compiling the software on the background.

make -j$(nproc --ignore=2)

distcc

Il programma distcc può essere utilizzato per eseguire compilazioni distribuite di codice C e C++ su più macchine in una rete.