mirror of
https://github.com/Linux4Yourself/book.git
synced 2025-02-10 21:54:40 +08:00
33 lines
2.6 KiB
Markdown
33 lines
2.6 KiB
Markdown
# О времени сборки пакетов
|
||
|
||
Время сборки пакетов во многом зависит от мощности компьютера.
|
||
|
||
В данной книге используется единица времени, аналогичная такой же в книге Linux from scratch - SBU (Standart Build Unit).
|
||
|
||
Она равна времени сборки первого пакета. Первым пакетом является `binutils`, время его компиляции в один поток на компьютере с процессором i3-2370M составляет примерно 3 минуты. 3 минуты = 1 SBU. На Вашем ПК значение будет немного другим. Так же, если какой-то пакет компилируется 10 SBU, то, переводя SBU в более привычную единицу, это будет равняться 30 минутам (учитывая то, что 1 SBU = 3 минутам).
|
||
|
||
Время на сборку 32-битных версий библиотек не учитывается.
|
||
|
||
## Самостоятельное измерение SBU
|
||
Для того, чтобы вычислить время сборки определённого пакета, выполните:
|
||
```bash
|
||
TIMEFORMAT='%1R Elapsed Time - $PROGRAM'
|
||
tar -zxvf $PROGRAM.tar.gz
|
||
pushd $PROGRAM
|
||
{ time \
|
||
{
|
||
./configure &&
|
||
make &&
|
||
make install
|
||
}
|
||
} 2>&1 | tee ../build.log
|
||
popd
|
||
```
|
||
|
||
> Замените `$PROGRAM.tar.gz` на имя нужного пакета, который надо распаковать.
|
||
|
||
## Объяснение новых команд
|
||
Когда мы измеряем время, необходимое для сборки пакета, мы используем функцию `time`. Время, затраченное на распаковку архива не учитывается. Фигурные скобки группируют команды как для функции определения затраченного времени, так и для перенаправления всего вывода в файл журнала (`../build.log`).
|
||
|
||
!> SBU не даёт совсем точных значений, потому что эти значения зависят от многих факторов, включая версию GCC хост-системы. Они приведены здесь, чтобы *примерно* оценить, сколько времени может потребоваться для установки пакета.
|