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


Какие характеристики ПК оказывают наибольшее влияние на время компиляции? Диск? Тактовая частота? Количество ядер процессора?


16
2017-07-30 19:39


происхождения


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


ответы:


Скотт Гу также рассказал о том, что влияет на скорость строительства, указывая в основном на I / O таких как жесткий диск.

http://weblogs.asp.net/scottgu/archive/2007/11/01/tip-trick-hard-drive-speed-and-visual-studio-performance.aspx


9
2017-07-30 19:51





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

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

(Видеть https://stackoverflow.com/questions/1170078/is-it-usual-for-aspx-files-to-take-5-10-seconds-to-save/1170129#1170129 для большего.)

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


13
2017-07-30 19:51



ПК в офисе использует TrendMicro OfficeScan. В моем ноутбуке Dev используется AVG 8. - Rob Allen
«Trend Micro». О, Боже. Если вы не можете заставить это изменить что-то еще, поцелуй до свидания к любой производительности вообще. - Bevan


Вот некоторые интересные исследования от Scott Hanselman по использованию нескольких процессоров для MSBUild. Ускорения довольно драматичны.

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


8
2017-07-30 19:45



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


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

Старая машина

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

Новая машина:

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


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


4
2018-03-12 16:09





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

Джоэл недавно опубликовал сообщение о влиянии дисков Solid State на компиляции Вот, Скорость диска обычно не улучшает время компиляции. Однако согласно это это имеет эффект, как указано lyngbym,


3
2017-07-30 19:45





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

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


1
2017-08-11 09:29



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


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

alt text


1
2017-08-11 04:26