Преимущества / недостатки построения единства?
С момента основания в новой компании я заметил, что они используют файлы unity cpp для большинства наших решений, и мне было интересно, сможет ли кто-нибудь дать мне точную причину того, почему и как они ускоряют процесс сборки? Я бы подумал, что редактирование одного файла cpp в файлах unity приведет к перекомпиляции всех из них.
3 ответа
Очень похожий вопрос и хорошие ответы здесь: # включить все файлы.cpp в один модуль компиляции?
Похоже, что в итоге сокращение затрат на ввод-вывод является основным преимуществом.
См. Также "Магия единства", как указано в приведенном выше вопросе.
Ли Уиндер опубликовал свой опыт работы со сборками Unity - The Evils of Unity Builds
Его вывод таков:
Единство строит. Они мне не нравятся
Это потому, что это экономит лишнюю работу. Избыточный анализ и компиляция для зависимостей. Связывание также намного сложнее - вы либо экспортируете все в одном объекте (или нескольких), либо это отдельные избыточные экспорты для большинства объектных файлов цели. Меньшее количество объектов приводит к меньшему количеству операций ввода-вывода и сокращению времени соединения. В зависимости от вашей настройки, включение может быть проблемой - в используемой мной системе "единой сборки" сборка, в конечном счете, связана с процессором и / или памятью.