Страница 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);
Про политики и управление обсуждаем здесь:
управление частотой процессора.