Компиляция (Ускорение)

From FreeCAD Documentation
Revision as of 13:17, 29 July 2021 by AdrianU (talk | contribs)

Обзор

FreeCAD - это крупное приложение, для полной компиляции которого из исходного когда, может потребоваться от 10 минут до часа. В первую очередь это зависит от используемого процессора и количества ядер, используемых в процессе компиляции. Вот несколько советов, как сократить время процесса сборки.

CCache

Установите ccache для кеширования сборок.

Отключаемые модули

При использовании cmake для настройки сборки вы можете отключить компиляцию определенных инструментальных средств, которые в данный момент могут вам не понадобиться. Это полезно, если вам нужно протестировать только несколько инструментальных средств.

Например, чтобы избежать создания инструментальных средств FEM и Mesh:

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

Используйте cmake-gui, cmake-curses-gui или cmake-qt-gui для отображения всех возможных переменных, которые можно редактировать в конфигурации; с помощью этих интерфейсов вы можете легко включать или выключать различные инструментальные средства.

Количество параллельных заданий

После настройки с помощью cmake программа make запускает настоящий компилятор C++ для работы с файлами исходного кода. Вы можете ускорить компиляцию, работая одновременно с различными файлами. Это достигается с помощью опции -j make, которая обозначает количество "задач" или команд компиляции, выполняемых одновременно. Этот параметр представляет собой целое число.

Выполняйте четыре команды компиляции параллельно:

make -j4

Скомпилируйте параллельно столько файлов, сколько ядер процессора в вашей системе. Это полезно, если у вас много ядер и вы хотите использовать их все для компиляции программного обеспечения.

make -j$(nproc)

Скомпилируйте параллельно столько файлов, сколько ядер процессора в вашей системе, минус два. Используйте это, чтобы ваша система спокойно реагировала на выполнение какой-либо другой задачи; например, два ядра позволят вам использовать браузер, в то время как остальные ядра продолжают компилировать программное обеспечение в фоновом режиме.

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

distcc

Программа distcc может использоваться для выполнения распределенной компиляции кода на языках C и C++ на нескольких компьютерах в сети.