Kompilacja (przyspieszamy)

From FreeCAD Documentation
Revision as of 05:49, 21 July 2023 by Kaktus (talk | contribs) (Created page with "Kompilowanie tylu plików równolegle, ile rdzeni procesora w systemie, minus dwa. Użyj tego, aby system nadal reagował na wykonywanie innych zadań. Na przykład dwa rdzenie pozwolą ci korzystać z przeglądarki, podczas gdy pozostałe rdzenie będą kompilować oprogramowanie w tle.")

Informacje ogólne

FreeCAD jest dużą aplikacją, której całkowita kompilacja ze źródła może zająć od 10 minut do godziny. Zależy to głównie od wydajności Twojego procesora i liczby rdzeni, które są wykorzystywane w procesie kompilacji. Oto kilka wskazówek, jak przyspieszyć ten proces i skrócić czas kompilacji.

CCache

Zainstaluj ccache, aby buforować kompilacje.

Ccache przyspiesza rekompilację poprzez buforowanie poprzednich kompilacji i wykrywanie, kiedy ta sama kompilacja jest wykonywana ponownie. Ccache jest wolnym oprogramowaniem, wydanym na licencji GPLv3 lub nowszej.

Wyłączanie modułów

Używając cmake do konfiguracji kompilacji, można wyłączyć kompilację niektórych środowisk roboczych, które mogą nie być potrzebne w danej chwili. Jest to przydatne, jeśli chcesz przetestować tylko kilka środowisk roboczych.

Na przykład, aby uniknąć budowy środowisk pracy MES i Siatka:

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

Użyj cmake-gui, cmake-curses-gui lub cmake-qt-gui, aby wyświetlić wszystkie możliwe zmienne, które można edytować w konfiguracji. Za pomocą tych interfejsów można łatwo włączać i wyłączać różne środowiska pracy.

Liczba zadań wykonywanych równolegle

Po skonfigurowaniu za pomocą cmake, program make uruchamia rzeczywisty kompilator C++ do pracy nad plikami kodu źródłowego. Kompilację można przyspieszyć, pracując nad różnymi plikami w tym samym czasie. Można to osiągnąć za pomocą opcji -j programu make, która określa liczbę "zadań" lub poleceń kompilacji uruchamianych jednocześnie. Opcja ta jest liczbą całkowitą.

Uruchomienie równolegle czterech poleceń kompilacji:

make -j4

Kompiluje równolegle tyle plików, ile rdzeni procesora w systemie. Jest to przydatne, jeśli masz wiele rdzeni i chcesz użyć ich wszystkich do kompilacji oprogramowania.

make -j$(nproc)

Kompilowanie tylu plików równolegle, ile rdzeni procesora w systemie, minus dwa. Użyj tego, aby system nadal reagował na wykonywanie innych zadań. Na przykład dwa rdzenie pozwolą ci korzystać z przeglądarki, podczas gdy pozostałe rdzenie będą kompilować oprogramowanie w tle.

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

distcc

The distcc program can be used to perform distributed compilation of C and C++ code across several machines in a network.

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.