Преимущества / недостатки построения единства?

С момента основания в новой компании я заметил, что они используют файлы unity cpp для большинства наших решений, и мне было интересно, сможет ли кто-нибудь дать мне точную причину того, почему и как они ускоряют процесс сборки? Я бы подумал, что редактирование одного файла cpp в файлах unity приведет к перекомпиляции всех из них.

3 ответа

Решение

Очень похожий вопрос и хорошие ответы здесь: # включить все файлы.cpp в один модуль компиляции?

Похоже, что в итоге сокращение затрат на ввод-вывод является основным преимуществом.

См. Также "Магия единства", как указано в приведенном выше вопросе.

Ли Уиндер опубликовал свой опыт работы со сборками Unity - The Evils of Unity Builds

Его вывод таков:

Единство строит. Они мне не нравятся

Это потому, что это экономит лишнюю работу. Избыточный анализ и компиляция для зависимостей. Связывание также намного сложнее - вы либо экспортируете все в одном объекте (или нескольких), либо это отдельные избыточные экспорты для большинства объектных файлов цели. Меньшее количество объектов приводит к меньшему количеству операций ввода-вывода и сокращению времени соединения. В зависимости от вашей настройки, включение может быть проблемой - в используемой мной системе "единой сборки" сборка, в конечном счете, связана с процессором и / или памятью.

Другие вопросы по тегам