mirror of
https://github.com/Poltern/lfs-ru.git
synced 2024-10-18 11:50:21 +03:00
81 lines
7.2 KiB
XML
81 lines
7.2 KiB
XML
<?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>
|
||
|