Страница 1 из 1

оптимизация под компиляцию-сборку (железо и настройки)

Добавлено: 31 янв 2021, 22:21
Olej
Задача:
- есть проект в развитии (коллективно развивается уже 10 лет или больше)...
- объём репозитория, скачанный с сетевого GIT составляет порядка 2.5Gb (это только исходники, конфигурации, ... - до сборки);
- компиляция сборка на хороших компьютерах (SSD, i5, ...) идёт порядка 90 мин.
Вопрос: как хоть как-то уменьшить это время?

Re: оптимизация под компиляцию-сборку (железо и настройки)

Добавлено: 31 янв 2021, 22:22
Olej
Olej писал(а):
31 янв 2021, 22:21
Вопрос: как хоть как-то уменьшить это время?
Один из способов (но уже использованный в сборке этого проекта) - это использовать для сборки не make, а ninja - инструмент управления сборкой, который Google и сделали для ускорения чудовищно длинной сборки Ghromium/Chrome, см. тему здесь в форуме Chromium - сборка и модификация

Это позволяет ускорить сборку в несколько раз - учитывайте это в своих проектах!

А для первоначального знакомства с Ninja годится:
Ninja
Глава 3 из книги "Производительность приложений с открытым исходным кодом"
Для практического уже использования годится The Ninja build tool ... показывает что сборка может быть ускорена в 10 раз ... а то и 100 на больших проектах!:
Изображение
Официальная документация:
The Ninja build system
v1.10.2, Nov 2020

Re: оптимизация под компиляцию-сборку (железо и настройки)

Добавлено: 06 фев 2021, 09:10
Olej
Olej писал(а):
31 янв 2021, 22:21
Вопрос: как хоть как-то уменьшить это время?
Ответ №1: диск для записи и его скорость.
Устанавливаю NVME диск вместо SSD (и уж тем более HDD)...
Вот такой:
Изображение

Скорость диска (измеренная!) 2201.32 MB/sec против 230-320 Mb/sec у SSD - в 10 раз быстрее!

Время полной сборки проекта как было порядка 90 минут, так примерно такое же и осталось. :-(
Потому что слабым звеном в этой конфигурации пока остаётся используемый процессор и его скорость.

Re: оптимизация под компиляцию-сборку (железо и настройки)

Добавлено: 06 фев 2021, 09:26
Olej
Olej писал(а):
06 фев 2021, 09:10
Потому что слабым звеном в этой конфигурации пока остаётся используемый процессор и его скорость.
В отношении процессора есть несколько совсем разных аспекта:
1. выбор модели процессора (из соображений цена/качество);
2. оптимизация режима работы процессора (политики управления частотой - governor);
3. возможно ... (но с большой осторожностью) что-то связанное с разгоном процессора;
2. оптимизация режима работы процессора (политики управления частотой - governor);
Про политики и управление обсуждаем здесь: управление частотой процессора.