1. Разбивайте проект на отдельно компилируемые файлы - тогда при изменении одного фрагмента системы перекомпилируется только этот файл. Тут, правда, палка о двух концах - возрастет время rebuild-а, но полный ребилд делается обычно реже чем фазы "немного поправил - скомпилировал".
2. Включайте (#include) только самое необходимое. Иногда достаточно включить some_forward.h или some_feature1.h вместо большого some.h. Для использовании ссылки или указателя на класс компилятору не нужно знать все о классе - пользуйтесь этим при написании header-файлов:
//вместо #include "SomeClass.h"А шаблоны вообще раскрываются в момент использования, а не декларации.
class SomeClass;
void Foo(SomeClass&);
void Bar(SomeClass*);
3. Распараллеливайте компиляцию на несколько процессоров.
4. Тривиально: поставьте побольше оперативной памяти.
5. Во время компиляции запустите system monitor и убедитесь, что не только процессор и память имеют значение. Узкое место: жесткий диск. Поставьте
2 комментария:
В случае использования любого unix не стоит забывать про distcc - это дает возможность распаралелить сборку на несколько компьютеров.
Хотя честно говоря с трудом могу представить проект, которому не достаточно одного компьютера, и, ну максимум, нескольких часов сборки.
А отдельно взятым разработчикам обычно нет смысла постоянно пересобирать все.
В больших проектах, иногда оказывается полезным ccache, позволяет кэшировать код, который уже был скомпилирован.
Особенно полезно, когда работаете с каким-нибудь генерируемым кодом.
Мне около года назад приходилось использовать его для проекта, где генерировалось огромное количество кода. С ccache получил значительное ускорение, сейчас цифр не помню уже, правда.
Хотя эффект очень сильно зависит от проекта, конечно.
Отправить комментарий