lfs-ru/chapter04/aboutsbus.xml
2024-08-27 12:56:29 +05:00

81 lines
7.2 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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 может
быть собран на различных системах, невозможно дать точную оценку времени.
Сборка самого большого пакета (gcc) займет около 5 минут на быстрых системах,
но может занять несколько дней на более медленных компьютерах! Вместо фактического
времени в книге используется показатель "стандартная единица времени сборки" (SBU).</para>
<para>Показатель SBU рассчитывается следующим образом. Первым пакетом, который нужно скомпилировать,
является binutils в <xref linkend="chapter-cross-tools"/>. Время, необходимое для компиляции
этого пакета с использованием одного ядра, будет называться стандартной единицей времени сборки
или SBU. Время компиляции остальных пакетов будет рассчитано относительно этого времени.</para>
<para>Например, рассмотрим пакет, время компиляции которого составляет 4,5 SBU.
Это означает, что если вашей системе потребовалось 4 минуты для компиляции и сборки
первого прохода binutils, то для сборки этого пакета потребуется
<emphasis>примерно</emphasis> 18 минут. К счастью, в большинстве случаев, время
сборки меньше, чем у binutils.</para>
<para>В целом, величина SBU не совсем точна, поскольку она зависит от множества
факторов, начиная от версии GCC хост-системы. Она приведены здесь, чтобы дать
оценку того, сколько времени может потребоваться для сборки пакета, но в
некоторых случаях цифры могут отличаться на десятки минут.</para>
<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>
<para>Когда используется несколько ядер, единицы измерения SBU будут
различаться еще больше, чем обычно. В некоторых случаях make просто
завершится ошибкой. Анализ выходных данных процесса сборки также будет более
сложным, поскольку строки разных потоков будут чередоваться. Если вы
столкнулись с проблемой на этапе сборки, вернитесь к сборке на одном ядре,
чтобы проанализировать сообщения об ошибках.</para>
<para>Представленные здесь значения времени для всех пакетов (за исключением
<xref linkend='ch-tools-binutils-pass1'/>, который собирается на одном ядре) рассчитаны
при использовании четырех ядер (-j4). Время, указанное в главе 8, также включает время
выполнения регрессионных тестов для пакета, если не указано иное.</para>
</note>
</sect1>