Это перевод статьи Oliver Reeve об одном из способов ускорения компиляции проекта. Автору удалось ускорить компиляцию с 55 до 6 минут. В своём проекте я получил прирост производительности около 22% (около минуты). Это не столь поразительно, как достижения автора, но всё же, умножив эту минуту на количество компиляций в день, количество разработчиков и длительность разработки проекта, я получил экономию, которая точно оправдывает затраты на чтение статьи и настройку проектов. Описано решение для Visual Studio и С++, но идея применима и к другим IDE, компиляторам и языкам программирования (не всем). В следующей статье я рассмотрел еще пару способов ускорения компиляции решения.
Каждый, кто работал над большим проектом на С++ (или С) ощутил на себе весь ужас длительного времени компиляции. Первый «большой» проект на С++, над которым я работал, собирался 10 минут. Это было намного дольше всего, с чем я работал ранее. Позже в моей карьере, когда я присоединился к индустрии разработки игр, я ощутил проблему компиляции по-настоящему большого проекта. Наша игра собиралась около часа.
И вот оно решение, которое мы внедрили: Unity Builds (далее — UB).
Некоторые читатели, хорошо знакомые с С и С++ могут решить, что то, что я опишу далее — это какой-то «хак». У меня нет конкретного мнения по этому поводу. Конечно, в идее есть нечто «хакообразное», но она действительно решает проблему длительной компиляции на большинстве платформ и для большинства компиляторов.
Перед тем, как я углублюсь в детали и расскажу как настроить UB, я хотел бы уточнить, что этот механизм не предназначен для замены обычного способа сборки релиз-версии решения. Основная идея в существенном сокращении времени сборки для разработчиков, которые минимум по 8 часов ежедневно заняты модификацией кода. Исправление багов и добавление функционала означают постоянную перекомпиляцию. Каждая компиляция — это ожидание, которое каждый заполняет, как умеет.
Read more: Habrahabr.ru
0 comments:
Post a Comment