The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Выпуск сборочного инструментария Qbs 2.0, opennews (?), 25-Апр-23, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


34. "Выпуск сборочного инструментария Qbs 2.0"  +/
Сообщение от Ванёк (?), 26-Апр-23, 11:11 
Время сборки при использовании make практически такое же, как при использовании любого другого инструментария для организации сборки. Всегда замеряю общее время сборки проекта, каждого модуля в отдельности, и всегда оказывается, что практически всё время сборки тратится на работу компилятора gcc/clang (clang обычно чуть быстрее gcc), а не make. Это, конечно, при условии грамотного написания сценариев make. Всё, что вы можете выиграть от перехода на более новые системы сборки - это десятые доли секунды.
Ответить | Правка | К родителю #11 | Наверх | Cообщить модератору

42. "Выпуск сборочного инструментария Qbs 2.0"  +/
Сообщение от Аноним (38), 26-Апр-23, 17:18 
> Всё, что вы можете выиграть от перехода на более новые системы сборки - это десятые доли секунды.

Всё, что могут выиграть пользователи — это проценты, да. А разработчки могут каждый день экономить по пол часа. Вообще — тут как с git.
Ситуация похожа на то, что Linus говорил про git (https://www.youtube com/watch?v=4XpnKHJAok8&t=3287s).
Разница не просто «быстрее или медленнее».
Если сборка занимает секунду, то в случае сомнений можно нажать build и посмотреть результат.
А с make нужно ждать 10-20-30 секунд, и это всё меняет.

Ответить | Правка | Наверх | Cообщить модератору

44. "Выпуск сборочного инструментария Qbs 2.0"  +/
Сообщение от Ванёк (?), 26-Апр-23, 17:25 
Замеры времени показывают, что практически всё время затрачивается на работу компилятора. Make, линковщик и прочее занимает максимум 5% времени в худшем случае. Если у кого-то иначе, смотрите, что не так с вашими сценариями сборки make, изучите make лучше - у него много опций и возможностей которые надо понимать, чтобы всё хорошо работало. Также надо понимать опции компиляторов gcc/clang, некоторые из которых непосредственно взаимосвязаны с работой make.
Ответить | Правка | Наверх | Cообщить модератору

46. "Выпуск сборочного инструментария Qbs 2.0"  +/
Сообщение от Аноним (38), 26-Апр-23, 19:59 
> Замеры времени показывают, что практически всё время затрачивается на работу компилятора.

Вы понимаете, что значит incremental build?

Давайте напомню: это повторная сборка без очистки сборочной директории. Допустим, в проекте 100 C++ файлов. Разработчики, как правило, редактируют их по одному. И вот в случае, если разработчик что-то делает в одном файле и периодически собирает проект для проверки, то компилируются не 100 файлов, а один. И в этом случае проявляется неэффективность сценариев make в работе с файлами. Большая часть времени в такой сборке уходит не на компиляцию, а на проверку того, что 99 файлов компилировать не надо.

> линковщик и прочее занимает максимум 5% времени в худшем случае

Включите LTCG или отладку и линковка сразу займёт больше времени. Но смысл в том, что в инкрементальных сборках время работы make куда больше 5% и вполне бывает 50% и даже 90%.

Вот делает разработчик, например, тест для какого-нибудь toolkit — Qt или GTK.
Запуск make даже без изменившихся файлов займёт десятки секунд, а потом компиляция+линковка теста ещё 1-3 секунды.

Ответить | Правка | Наверх | Cообщить модератору

47. "Выпуск сборочного инструментария Qbs 2.0"  +/
Сообщение от Ванёк (?), 26-Апр-23, 21:40 
Никто каждый раз не перекомпилирует весь проект. Это обычный режим работы. Все в курсе об этом режиме. Для этого режима и предназначен make и работает он очень быстро. Если в проекте нет изменений, то на среднем проекте проверка всего и вся занимает десятые доли секунды. У меня он работает так. Всё работает быстро, и ничего не тормозит. При этом сценарии make не маленькие - более 1500 строк (это уже за вычетом комментариев и пустых строк).
Ответить | Правка | Наверх | Cообщить модератору

48. "Выпуск сборочного инструментария Qbs 2.0"  +/
Сообщение от Ванёк (?), 26-Апр-23, 22:03 
Выше уже приводили ссылку, где сравнивается производительность make и ninja, которая разрабатывалась как улучшенная и ускоренная альтернатива make: https://hamelot.io/programming/make-vs-ninja-performance-com.../
Это правдивые данные. По факту разница в производительности между ними очень незначительная, как для полной, так и для частичной пересборки проекта, хотя для частичной пересборки она таки есть, но абсолютно некритичная - десятые доли секунды. То есть для тех, у кого уже есть отработанные годами сценарии сборки make, переходить на что-то другое смысла никакого нет.
Ответить | Правка | К родителю #46 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру