Какие компоненты ПК делают наибольшее влияние на ваше время компиляции для Visual Studio?

16

Какие спецификации PC имеет наибольшее влияние на ваши времена компиляции? Диск? Тактовая частота? Количество ядер процессора?

Роб Аллен
источник
1
Разве это не вопрос программирования? Будет ли это иметь большую аудиторию на StackOverflow?
Kurt W. Leucht

Ответы:

13

Фактор, который я нашел делает большое различие не является физическим фактором, но программное обеспечение один: Какой антивирус у вас установлен?

Некоторые антивирусные продукты не поддерживают разработки программного обеспечения очень хорошо - они видят все эти файлы приложения переписываются, подозреваемый нечестной игры и отсканировать каждый файл каждый раз.

(Подробнее см. Https://stackoverflow.com/questions/1170078/is-it-usual-for-aspx-files-to-take-5-10-seconds-to-save/1170129#1170129 .)

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

Беван
источник
ПК в офисе с помощью TrendMicro OfficeScan. Мой домашний ноутбук использует AVG 8.
Роб Аллен
3
«Тренд Микро». О, Боже. Если вы не можете получить , что изменилось что - то еще, поцелуй на прощание с любой производительности на всех.
Беван
8

Вот небольшое исследование Скотта Хансельмана об использовании нескольких процессоров для MSBUild. Скоростные окна являются довольно существенными.

Edit: я должен отметить, однако, что для того, чтобы иметь хороший опыт работы с использованием Visual Studio, вам нужно много оперативной памяти. :)

JP Alioto
источник
+1 Хорошая статья на эту тему. Я забыл об этом. Я думаю , что он также сделал подкаста относительно этого.
BinaryMisfit
4

Мой личный опыт с кодом базой изрядного размером C ++:

Старый машин

Процессор: Pentium 4 HT 3,06 ГГц
Память: 1 ГБ оперативной памяти DDR (ПК 2100, 333 МГц)
Диск: жесткий диск 7200 об / мин (UDMA 100, если память служит)
Время компиляции: 50 минут

Новая машина

Процессор: Core i7 720QM (8 логических процессоров) с частотой 1,6 ГГц, турбо-усиление до 1,73 ГГц, когда все ядра активны.
Память: 8 ГБ, DDR3, ОЗУ, 1066 МГц.
Диск: 7200 об / мин, жесткий диск (SATA 2).
Время компиляции: 4 минуты/ МП )


Вывод: Чем больше процессоров, тем лучше - даже при относительно низких тактовых частот. SSD позволит улучшить раз дальше, но из наблюдений компиляции сообщений, я сомневаюсь , что это улучшило бы его более чем на 30 секунд или около того .

mmyers
источник
3

Насколько я помню, в основном, процессор и память. Быстрый Google обнаружил различные изменения, которые могут улучшить время компиляции.

Joel недавно опубликовал о влиянии твердотельных дисков на компилирует здесь . Скорость диска как правило , не улучшить время компиляции резко. Однако в соответствии с этим он имеет влияние как отметил lyngbym .

BinaryMisfit
источник
1

Для построения программ C ++, фактор # 1, прежде чем все остальное является структурным - если исходный код сильно вертикально структурирован, это будет иметь разрушительное воздействие на время сборки, особенно дополнительные построения. Я локально реструктурировал несколько частей проекта для существенного улучшения четырехъядерного Xeon. Через 18 месяцев, и они (люди, которые владеют проектом) до сих пор не может соответствовать моей стене часов времени сборки даже на машинах Core i7.

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

Сэм Харвелл
источник
У вас есть ссылка , которая описывает различные структуры кода , пожалуйста. Я думаю , что я знаю , что вы имеете в виду , но я не уверен.
Rob Allen
У меня возникли проблемы с поиском моих ссылок, но общая идея 1) использовать вперед декларации , где это возможно, 2) включают в себя файлы только тогда , когда опережающее объявление не будет работать, и 3) убедитесь , что файл включить не декларирует более вещи , чем это необходимо, в свою очередь , может сделать его включать больше файлов не иначе нужно для конкретного исходного файла компилируется (он же держать заголовки малых и использовать вперед деклараций в них так же , как вы делаете для исходных файлов).
Сэм Харвелла
1

Xoreax IncrediBuild распределенная система сборки, которая сделала огромный шаг вперед по компиляции раз , когда я работаю. (К сожалению, времена ссылки все еще довольно долго, особенно релиз сборки с использованием оптимизации целого программы и генераций канального кода времени, но это и следовало ожидать.)

альтернативный текст

bk1e
источник