2022-05-18 21:52:36 +03:00
|
|
|
|
<?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>
|
2022-05-18 21:52:36 +03:00
|
|
|
|
|
2023-06-26 21:32:36 +03:00
|
|
|
|
<para>Показатель SBU рассчитывается следующим образом. Первым пакетом, который нужно скомпилировать,
|
|
|
|
|
является binutils в <xref linkend="chapter-cross-tools"/>. Время, необходимое для компиляции
|
|
|
|
|
этого пакета с использованием одного ядра, будет называться стандартной единицей времени сборки
|
|
|
|
|
или SBU. Время компиляции остальных пакетов будет рассчитано относительно этого времени.</para>
|
2022-05-18 21:52:36 +03:00
|
|
|
|
|
|
|
|
|
<para>Например, рассмотрим пакет, время компиляции которого составляет 4,5 SBU.
|
2024-08-27 10:56:29 +03:00
|
|
|
|
Это означает, что если вашей системе потребовалось 4 минуты для компиляции и сборки
|
2022-05-18 21:52:36 +03:00
|
|
|
|
первого прохода binutils, то для сборки этого пакета потребуется
|
2024-08-27 10:56:29 +03:00
|
|
|
|
<emphasis>примерно</emphasis> 18 минут. К счастью, в большинстве случаев, время
|
2023-06-26 21:32:36 +03:00
|
|
|
|
сборки меньше, чем у binutils.</para>
|
2022-05-18 21:52:36 +03:00
|
|
|
|
|
2024-08-27 10:56:29 +03:00
|
|
|
|
<para>В целом, величина SBU не совсем точна, поскольку она зависит от множества
|
|
|
|
|
факторов, начиная от версии GCC хост-системы. Она приведены здесь, чтобы дать
|
2022-05-18 21:52:36 +03:00
|
|
|
|
оценку того, сколько времени может потребоваться для сборки пакета, но в
|
|
|
|
|
некоторых случаях цифры могут отличаться на десятки минут.</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>
|
2022-05-18 21:52:36 +03:00
|
|
|
|
|
|
|
|
|
<note>
|
2023-06-26 21:32:36 +03:00
|
|
|
|
<para>Когда используется несколько ядер, единицы измерения SBU будут
|
2022-05-18 21:52:36 +03:00
|
|
|
|
различаться еще больше, чем обычно. В некоторых случаях make просто
|
|
|
|
|
завершится ошибкой. Анализ выходных данных процесса сборки также будет более
|
2023-06-26 21:32:36 +03:00
|
|
|
|
сложным, поскольку строки разных потоков будут чередоваться. Если вы
|
|
|
|
|
столкнулись с проблемой на этапе сборки, вернитесь к сборке на одном ядре,
|
2022-05-18 21:52: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>
|
2022-05-18 21:52:36 +03:00
|
|
|
|
</note>
|
|
|
|
|
|
|
|
|
|
</sect1>
|
|
|
|
|
|