Как ускорить компиляцию?

Рейтинг: 1Ответов: 1Опубликовано: 22.02.2011

Если проект очень велик и собирается реально долго - пять минут и более на 2-х процессорной машине, как можно ускорить компиляцию (на той же машине)?

Ответы

▲ 6Принят

Часто случается, что во время компиляции одни и те же заголовочники подключают в одном и том же окружении (с одинаковыми макросами). В таком случае, полезно, чтобы компилятор не анализировал заголовочники на каждый .c-файл. Для этого предназначены Precompiled headers и ещё.

Если под рукой несколько машин, то можно попрбовать распределённую компиляцию. Например, с помощью distcc.

Кроме того, можно попробовать посмотреть на сам ваш код. Возможно, следует упростить какие-то конструкции, связанные с шаблонами. Это может быть актуально, если вы активно используете метапрограммирование.

Вам также может помочь хорошая модульность приложения, тогда можно будет пересобирать что-то только при необходимости.

Ну и само собой разумеется, что надо использовать make с проверкой таймстемпов и с параллельной сборкой (Например, make -j4).

И напоследок, стоит почитать общие рассуждения на эту тему. На том же SO поднималась эта тема.