lfs-ru/chapter04/aboutsbus.xml

63 lines
5.0 KiB
XML
Raw Normal View History

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="ch-preps-aboutsbus">
<?dbhtml filename="aboutsbus.html"?>
<title>О SBU (Стандартная единица времени сборки)</title>
<para>Многие люди хотели бы знать заранее, сколько примерно времени потребуется
для компиляции и установки каждого пакета. Поскольку Linux From Scratch может
2023-06-26 21:32:36 +03:00
быть собран на различных системах, невозможно дать точную оценку времени.
Сборка самого большого пакета (gcc) займет около 5 минут на быстрых системах,
но может занять несколько дней на более медленных компьютерах! Вместо фактического
времени в книге используется показатель "стандартная единица времени сборки" (SBU).</para>
2023-06-26 21:32:36 +03:00
<para>Показатель SBU рассчитывается следующим образом. Первым пакетом, который нужно скомпилировать,
является binutils в <xref linkend="chapter-cross-tools"/>. Время, необходимое для компиляции
этого пакета с использованием одного ядра, будет называться стандартной единицей времени сборки
или SBU. Время компиляции остальных пакетов будет рассчитано относительно этого времени.</para>
<para>Например, рассмотрим пакет, время компиляции которого составляет 4,5 SBU.
2023-06-26 21:32:36 +03:00
Это означает, что если вашей системе потребовалось 10 минут для компиляции и сборки
первого прохода binutils, то для сборки этого пакета потребуется
2023-08-12 18:50:06 +03:00
<emphasis>примерно</emphasis> 45 минут. К счастью, в большинстве случаев, время
2023-06-26 21:32:36 +03:00
сборки меньше, чем у binutils.</para>
<para>В целом, величина SBU не совсем точна, поскольку она зависит от многих
факторов, включая версию GCC хост-системы. Она приведены здесь, чтобы дать
оценку того, сколько времени может потребоваться для сборки пакета, но в
некоторых случаях цифры могут отличаться на десятки минут.</para>
<note>
<para>Для многих современных систем с несколькими процессорами (или ядрами)
время компиляции пакета можно сократить, выполнив <quote>параллельную сборку</quote>,
либо установив переменную среды, либо сообщив программе <command>make</command>,
2023-06-26 21:32:36 +03:00
сколько ядер задействовать для сборки. Например, процессор Intel i5-6500 может
поддерживать четыре одновременных потока:</para>
<screen role="nodump"><userinput>export MAKEFLAGS='-j4'</userinput></screen>
2023-06-26 21:32:36 +03:00
<para>или просто собирать с флагом:</para>
<screen role="nodump"><userinput>make -j4</userinput></screen>
2023-06-26 21:32:36 +03:00
<para>Когда используется несколько ядер, единицы измерения SBU будут
различаться еще больше, чем обычно. В некоторых случаях make просто
завершится ошибкой. Анализ выходных данных процесса сборки также будет более
2023-06-26 21:32:36 +03:00
сложным, поскольку строки разных потоков будут чередоваться. Если вы
столкнулись с проблемой на этапе сборки, вернитесь к сборке на одном ядре,
чтобы проанализировать сообщения об ошибках.</para>
2023-06-26 21:32:36 +03:00
<para>Представленные здесь значения времени основаны на замерах при использовании
четырех ядер (-j4). Время, указанное в главе 8, также включает время выполнения
регрессионных тестов для пакета, если не указано иное.</para>
</note>
</sect1>