Compiling (Speeding up)/ru: Difference between revisions

From FreeCAD Documentation
(Updating to match new version of source page)
(Updating to match new version of source page)
 
(21 intermediate revisions by 3 users not shown)
Line 1: Line 1:
<languages/>
<languages/>
<div class="mw-translate-fuzzy">
{{Docnav/ru|[[CompileOnMac/ru|CompileOnMac]]|[[Third Party Libraries/ru|Third Party Libraries]]}}
</div>


{{Docnav
<div class="mw-translate-fuzzy">
|[[FreeCAD_Docker_CLI_mode/ru|FreeCAD Docker в режиме команндной строки CLI]]
При разработке FreeCAD требуется сборка из исходного кода, и фаза компиляции / сборки может отнимать драгоценное время на разработку. Вот несколько советов, чтобы сократить этот процесс и сделать время сборки более эффективным.
|[[Third_Party_Libraries/ru|Сторонние библиотеки]]
</div>
}}

{{TOCright}}

<span id="Overview"></span>
==Обзор==

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

== CCache ==


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
=== CCache ===
=== CCache ===
Установите ccache для кеширования сборок
Установите {{incode|ccache}} для кеширования сборок.
</div>
</div>

[https://ccache.dev/ Ccache] speeds up recompilation by caching previous compilations and detecting when the same compilation is done again. Ccache is free software, released under GPLv3 or later.

On most systems ccache will be automatically detected and enabled, you can use the {{incode|FREECAD_USE_CCACHE}} {{incode|cmake}} option to control this behavior.

== Disable modules ==


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
=== Отключаемые модули ===
=== Отключаемые модули ===
При использовании {{incode|cmake}} для настройки сборки вы можете отключить компиляцию определенных инструментальных средств, которые в данный момент могут вам не понадобиться. Это полезно, если вам нужно протестировать только несколько инструментальных средств.
Используйте флаги cmake-curses-gui, cmake-qt-gui или cmake для отключения модулей, с которыми вы не работаете
</div>
</div>


Например, чтобы исключить сборку верстаков FEM и Mesh:
For example, to avoid building the FEM and Mesh workbenches:


{{Code|code=
{{Code|code=
Line 24: Line 37:
}}
}}


Use {{incode|cmake-gui}}, {{incode|cmake-curses-gui}}, or {{incode|cmake-qt-gui}} to display all the possible variables that can be edited in the configuration; using these interfaces you can easily switch on or off different workbenches.
Используйте {{incode|cmake-gui}}, {{incode|cmake-curses-gui}} или {{incode|cmake-qt-gui}} для отображения всех возможных переменных, которые можно редактировать в конфигурации; с помощью этих интерфейсов вы можете легко включать или выключать различные инструментальные средства.

== Number of jobs in parallel ==


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
== Количество параллельных заданий ==
=== make -j ===
После настройки с помощью {{incode|cmake}} программа {{incode|make}} запускает настоящий компилятор C++ для работы с файлами исходного кода. Вы можете ускорить компиляцию, работая одновременно с различными файлами. Это достигается с помощью опции {{incode|-j}} {{incode|make}}, которая обозначает количество "задач" или команд компиляции, выполняемых одновременно. Этот параметр представляет собой целое число.
Используйте make -j #, чтобы указать количество заданий. Предлагаемое значение - это количество ядер компьютера, например,
<pre>make -j$(nproc)</pre>
</div>
</div>


Выполняйте четыре команды компиляции параллельно:
Run four compilation commands in parallel:


{{Code|code=
{{Code|code=
Line 38: Line 52:
}}
}}


Скомпилируйте параллельно столько файлов, сколько ядер процессора в вашей системе. Это полезно, если у вас много ядер и вы хотите использовать их все для компиляции программного обеспечения.
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.


{{code|code=
{{code|code=
Line 44: Line 58:
}}
}}


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


{{code|code=
{{code|code=
make -j$(nproc --ignore=2)
make -j$(nproc --ignore=2)
}}
}}

== distcc ==


<div class="mw-translate-fuzzy">
<div class="mw-translate-fuzzy">
=== distcc ===
=== distcc ===
Distcc может использоваться для распределенной компиляции в сети.
Программа {{incode|distcc}} может использоваться для выполнения распределенной компиляции кода на языках C и C++ на нескольких компьютерах в сети.
</div>
</div>


[https://www.distcc.org/ 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.
<div class="mw-translate-fuzzy">
{{Docnav/ru|[[CompileOnMac/ru|CompileOnMac]]|[[Third Party Libraries/ru|Third Party Libraries]]}}
</div>


FreeCAD dev 'etrombly' has published a short explanation on [https://forum.freecadweb.org/viewtopic.php?f=4&t=50810&p=459142#p458614 how to install distcc to compile FreeCAD on a network of computers using Docker].
{{Userdocnavi/ru}}


[[Category:Developer Documentation/ru]]


{{clear}}
{{Docnav
|[[FreeCAD_Docker_CLI_mode/ru|FreeCAD Docker в режиме команндной строки CLI]]
|[[Third_Party_Libraries/ru|Сторонние библиотеки]]
}}

{{Userdocnavi{{#translation:}}}}
[[Category:Developer_Documentation{{#translation:}}]]
[[Category:Developer{{#translation:}}]]

Latest revision as of 14:55, 23 July 2023

Обзор

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

CCache

CCache

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

Ccache speeds up recompilation by caching previous compilations and detecting when the same compilation is done again. Ccache is free software, released under GPLv3 or later.

On most systems ccache will be automatically detected and enabled, you can use the FREECAD_USE_CCACHE cmake option to control this behavior.

Disable modules

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

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

Например, чтобы исключить сборку верстаков FEM и Mesh:

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

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

Number of jobs in parallel

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

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

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

make -j4

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

make -j$(nproc)

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

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

distcc

distcc

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

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.