Строительство занимает много времени.Как бороться с этим? - PullRequest
6 голосов
/ 19 октября 2010

Говоря о скомпилированных языках (в моем случае - c #), я думаю, что проблема останется всегда, независимо от того, насколько эффективна ваша машина разработки.Время сборки может быть более или менее в зависимости от конкретной среды, но часто этого достаточно, чтобы ваше внимание переместилось с вашей задачи на что-то другое, например stackoverflow, youtube, twitter и т. Д., И это просто очень раздражает.

Я рад за разработчиков Java из-за динамической загрузки классов Java, но что могут сделать разработчики .net (и другие), чтобы сделать процесс сборки менее болезненным и навязчивым?

Ответы [ 7 ]

8 голосов
/ 19 октября 2010

Мы используем несколько конфигураций сборки для компромисса между скоростью и комплексной сборкой.

Полная сборка требует много времени, таких как анализ копов FX, компиляция ASP.NET, все проекты модульного тестирования, Entity Frameworkпросмотр предварительной генерации и т. д.

«Быстрая сборка» обычно занимает всего несколько секунд, а это тот минимум, который необходим для запуска проекта.

Разработчики переключаются между полной сборкой ибыстрая сборка по мере необходимости.

4 голосов
/ 19 октября 2010

Разве файлы классов также не должны быть собраны? Разве это не переводит рабочую нагрузку во время выполнения в отличие от времени компиляции? Это на самом деле не разница, не так ли? Естественно, чем больше программное обеспечение растет, тем больше времени требуется для его построения, в зависимости от машины, а не от языка или структуры - это компромисс для таких вещей, как строгая типизация, интерпретируемый байт-код (или двоичный код в зависимости от языка / компилятора ) вместо интерпретируемого исходного кода при каждом запуске (как у вас с php, python и т. д.). Я не думаю, что Java значительно улучшит ситуацию, у вас будут временные рамки для сборки приложения.

Я думаю, что по сравнению с C и C ++ и C #, и Java значительно улучшились за счет времени компиляции.

Просто используйте время для расслабления:

Compiling

источник

3 голосов
/ 19 октября 2010

Несколько вещей, которые нужно попробовать:

  1. Дефрагментация диска, содержащего ваш исходный код

  2. Исключить папки с исходным кодом из антивирусного сканера

  3. Исключить папки исходного кода из индексатора поиска Windows

  4. Отключить все расширения Visual Studio, которые вы не используете

2 голосов
/ 19 октября 2010

Замечание в вашем вопросе о том, что ваше внимание отвлекается от задачи, напомнило мне о этой публикации Джоэла о ПО.

Таким образом, вложение в твердотельные диски (поскольку я предполагаю, что вы говорите о процессе сборки на устройстве dev во время разработки и отладки) может помочь.

Кроме того, сделать ваш компьютер быстрее не повредит, верно? :)

1 голос
/ 19 октября 2010

Я работал над некоторыми очень большими проектами на C # и редко видел, как время сборки Debug превышает 2 минуты.

Что обычно отнимает время, это такие вещи, как статический анализ (например, fxcop), модульные тесты, подписывание кода (при использовании службы подписи кода) и т. д. Самый простой способ держать их под контролем - это либо ограничить их сборками Release, либо иметь отдельное определение сборки для 'Full Build' и исключить эти шаги из ваших сборок Debug и Release.

Если это не ваши проблемы, посмотрите на производительность вашего компьютера, как говорили другие.Фрагментация, медленная сборка дисков, антивирус и т. Д.

1 голос
/ 19 октября 2010

Вы все время перестраиваете или у вас все в одной сборке? Я работаю с довольно большими проектами, и мое время сборки не так уж велико. У меня есть несколько сборок, и я изменяю только несколько каждый раз, когда делаю изменения в проекте.

Если вы обнаружите, что модифицируете сборки повсеместно, вы можете попытаться изменить структуру своего кода. Или, может быть, вы не удосужились провести юнит-тесты? Они не только помогают вам в тестировании, но и улучшают структуру кода (сложно тестировать приложения с паршивым дизайном).

Другой альтернативой является использование инструментов, ускоряющих сборки, например: http://www.xoreax.com/

1 голос
/ 19 октября 2010

В дополнение ко многим другим предложениям для получения более быстрой машины, удаления ненужных проектов из вашего решения и т. Д. Рассмотрим Visual Studio 2010 + многоядерную машину. VS2010 может использовать все ваши ядра при сборке. Проверьте эту тему , чтобы узнать больше о том, как ее настроить.

...