Compiling (Speeding up)/it: Difference between revisions

From FreeCAD Documentation
(Created page with "== Numero di lavori in parallelo ==")
No edit summary
Line 37: Line 37:
== Numero di lavori in parallelo ==
== Numero di lavori in parallelo ==


<div class="mw-translate-fuzzy">
===Numero di lavori in parallelo===
Dopo la configurazione fatta con {{incode|cmake}}, il programma {{incode|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 {{incode|-j}} di {{incode|make}}, che indica il numero di "lavori" o comandi di compilazione eseguiti contemporaneamente. Questa opzione è un numero intero.
Dopo la configurazione fatta con {{incode|cmake}}, il programma {{incode|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 {{incode|-j}} di {{incode|make}}, che indica il numero di "lavori" o comandi di compilazione eseguiti contemporaneamente. Questa opzione è un numero intero.
</div>


Esegui quattro comandi di compilazione in parallelo:
Esegui quattro comandi di compilazione in parallelo:

Revision as of 07:00, 10 August 2023

Presentazione

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

Ccache accelera la ricompilazione memorizzando nella cache le compilazioni precedenti e rilevando quando la stessa compilazione viene eseguita di nuovo. Ccache è un software gratuito, rilasciato sotto GPLv3 o successivo.

Sulla maggior parte dei sistemi ccache verrà rilevato e abilitato automaticamente, puoi utilizzare l'opzione FREECAD_USE_CCACHE cmake per controllare questo comportamento.

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.

Esegui quattro comandi di compilazione in parallelo:

make -j4

Compilare contemporaneamente più file quanti sono i core della CPU nel sistema. Questo è utile se hai molti core e vuoi usarli tutti per compilare il software.

make -j$(nproc)

Compilare contemporaneamente più file quanti sono i core della CPU nel sistema, meno due. Usa questo in modo che il tuo sistema sia ancora pronto a svolgere qualche altra attività; ad esempio, due core ti permetteranno di usare un browser, mentre il resto dei core continuerà a compilare il software in background.

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

distcc

distcc

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

Distcc should always generate the same results as a local compilation. It is free, simple to install and use, and often two or more times faster than compiling locally.

FreeCAD dev 'etrombly' has published a short explanation on how to install distcc to compile FreeCAD on a network of computers using Docker.