lfs-ru/chapter04/aboutsbus.xml

81 lines
7.2 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.
2024-08-27 10:56:29 +03:00
Это означает, что если вашей системе потребовалось 4 минуты для компиляции и сборки
первого прохода binutils, то для сборки этого пакета потребуется
2024-08-27 10:56:29 +03:00
<emphasis>примерно</emphasis> 18 минут. К счастью, в большинстве случаев, время
2023-06-26 21:32:36 +03:00
сборки меньше, чем у binutils.</para>
2024-08-27 10:56:29 +03:00
<para>В целом, величина SBU не совсем точна, поскольку она зависит от множества
факторов, начиная от версии GCC хост-системы. Она приведены здесь, чтобы дать
оценку того, сколько времени может потребоваться для сборки пакета, но в
некоторых случаях цифры могут отличаться на десятки минут.</para>
2024-08-27 10:56:29 +03:00
<para>В современных материнских платах есть возможность управлять тактовой
частотой процессора. Это можно сделать с помощью команды, такой как,
<command>powerprofilesctl</command>. Данная возможность отсутствует в LFS, но
может быть доступна в хост-дистрибутиве. После сборки LFS управление производительностью
и электропитанием можно добавить в систему с помощью инструкций, описанных на странице
<ulink url='&blfs-book;sysutils/power-profiles-daemon.html'>BLFS power-profiles-daemon</ulink>.
</para>
<para>Перед измерением времени сборки любого пакета рекомендуется задействовать профиль
энергопотребления системы, настроенный на максимальную производительность (и максимальное
энергопотребление). </para>
<para>В противном случае измеренное значение SBU может быть неточным, поскольку система
может по-разному реагировать на сборку <xref linkend='ch-tools-binutils-pass1'/> или
других пакетов.</para>
<para>Имейте в виду, что даже если для обоих пакетов используется один и тот же профиль, все
равно могут возникнуть существенные неточности, поскольку система может реагировать медленнее,
если система простаивает при запуске процедуры сборки. Установка для профиля питания режима
<quote>производительность</quote> сведет к минимуму эту проблему. И, очевидно, это также ускорит
сборку LFS.</para>
<para>Если <command>powerprofilesctl</command> доступен, введите команду
<command>powerprofilesctl set performance</command>, чтобы выбрать профиль
<literal>производительность</literal>. Некоторые дистрибутивы для управления профилями
предоставляют команду <command>tuned-adm</command> вместо <command>powerprofilesctl</command>,
в этих дистрибутивах введите команду <command>tuned-adm profile throughput-performance</command>,
чтобы выбрать профиль <literal>производительность</literal>.</para>
<note>
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
2024-08-27 10:56:29 +03:00
<para>Представленные здесь значения времени для всех пакетов (за исключением
<xref linkend='ch-tools-binutils-pass1'/>, который собирается на одном ядре) рассчитаны
при использовании четырех ядер (-j4). Время, указанное в главе 8, также включает время
выполнения регрессионных тестов для пакета, если не указано иное.</para>
</note>
</sect1>