Способы ускорить время сборки? (C # / Неуправляемый C ++) - PullRequest
5 голосов
/ 29 июля 2009

Устаревшее приложение, над которым я сейчас работаю, занимает около 2 часов. Проект насчитывает около 170 проектов, из которых 150 или около того неуправляемый C ++, а остальные 30 C # .Net 2.0.

Какие предложения по улучшению времени сборки для чего-то подобного?

Ответы [ 5 ]

8 голосов
/ 29 июля 2009

Сосредоточьтесь на проектах C ++ - почти гарантированно они будут самыми большими временными затратами на строительство.

Несколько советов по сокращению времени сборки C ++:

  • Убедитесь, что в проекты C ++ включены только те заголовки, которые вам нужны!
  • Используйте по возможности предварительные объявления в заголовках вместо включения других заголовков
  • Используйте переключатель / MP для параллельного построения, если это возможно
  • Эффективно используйте абстракцию
  • Будьте осторожны при использовании встроенных функций, так как они стоят больше во время компиляции
  • Получите правильные зависимости, так что вы не будете строить чаще, чем требуется
  • Использовать предварительно скомпилированные заголовки

Кроме того, если вы говорите о двухчасовом времени сборки, часто есть и простое, дешевое (в общем виде) решение:

  • Обновите ваше оборудование, чтобы сократить время вычислений
4 голосов
/ 29 июля 2009

Если вы установите IncrediBuild на каждую машину, которая должна его собрать, она распределяет процесс сборки среди всех машин. Если вы действительно хотите просто решить проблему с помощью оборудования, вы можете настроить несколько выделенных компьютеров, которые служат только в качестве клиентов IncrediBuild.

В другом масштабе убедитесь, что в каждом проекте правильно сконфигурированы предварительно скомпилированные заголовки.

2 голосов
/ 29 июля 2009

Вы можете использовать такой инструмент, как lint , чтобы проверить, есть ли у вас избыточные файлы включения в ваших проектах c ++.

Существует также отличная статья на эту тему на Игры изнутри .

2 голосов
/ 29 июля 2009

Вы можете попробовать распределенную систему сборки Incredibuild: http://www.xoreax.com/visual_studio.htm

0 голосов
/ 29 июля 2009

Создание нескольких решений для проекта, которые включают только соответствующие подмножества проектов и оставляют одно супер-решение для выпусков и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...