#c #visual-c #msbuild #distributed-computing #visual-studio-addins
#c #visual-c #msbuild #распределенные вычисления #visual-studio-дополнения
Вопрос:
Мы работаем над довольно большим промежуточным программным обеспечением, и каждый раз, когда нам нужно заново собрать все решение в VS2008 (четырехъядерная параллельная сборка на одной машине), требуется 10-20 минут. Я слышал, что есть довольно дорогие расширения VS, такие как Incredibuild, которые используют другие компьютеры в вашей сети (у нас около 10 компьютеров). Вы когда-нибудь использовали или слышали об этих инструментах? Делают ли они процесс сборки настолько быстрым и умным, чтобы он стоил своих денег? (например, повторно использовать объектные файлы, которые могут быть кэшированы на разных компьютерах)
Заранее спасибо
Комментарии:
1. Компания, в которой я работал, использовала Incredibuild для Visual C 6 около 10 лет назад, и там это значительно улучшило время сборки, но с тех пор я им не пользовался. Я бы посоветовал загрузить пробную версию и опробовать ее, поскольку таким образом вы будете точно знать, будет ли это работать для вашей кодовой базы.
Ответ №1:
Ну, у нас были похожие проблемы, за исключением того, что в нашем случае сборка заняла более 40 минут.
В Visual Studio 2008 мы использовали Xoreax Incredibuild (см. веб-сайт Xoreax ), и это значительно сократило время сборки (т. Е. вдвое или даже больше). Итак, я бы сказал, да, такой инструмент может помочь. И, на мой взгляд, это не так дорого (т. е. от 250 до 500 долларов США за место в зависимости от дополнительных опций, и есть некоторые скидки при объемных покупках).
Сейчас мы находимся на версии VS 2010, и на момент обновления в Incredibuild не было поддержки 2010, поэтому мы полагаемся на сборку VS2010. У всех разработчиков четыре ядра, и сборка в VS 2010 хорошо использует это, поэтому время сборки приемлемо. Мы также пересмотрели и улучшили наши включения и стали лучше использовать предварительно скомпилированные заголовки и так далее.
Итак, вы могли бы попробовать Xoreax Incredibuild (у них есть полнофункциональная 30-дневная пробная версия, которую можно продлить по истечении срока ее действия), чтобы иметь возможность определить, подходит ли соотношение цена / выгода для вашего случая, или пересмотреть и улучшить ваши версии и / или перейти на VS2010, если у вас многоядерные компьютеры.
Комментарии:
1. Сокращение времени сборки вдвое — это уже кое-что, но сейчас я немного разочарован этой цифрой. Я надеялся, что их метод кэширования значительно сэкономит время перекомпиляции. Я все равно собираюсь использовать пробную версию. -Спасибо
2. Время сборки нашего приложения сокращается с 15 минут до 2-3 минут. Намного лучше, чем 2x — это просто зависит от того, сколько времени вы тратите на этап компоновки.
Ответ №2:
Согласен с предыдущим ответом. У нас был похожий опыт; время сборки действительно значительно сократилось. Сначала мы выполнили простую настройку Incredibuild; использовали резервные мощности на других машинах. Преимущества были очевидны, но мы поняли, что можем получить еще более быстрые сборки, добавив выделенный сервер сборки (хотя у нас гораздо больше разработчиков — более 100 клиентов — так что YMMV)
Что касается затрат, вполне вероятно, что Incredibuild повысит производительность вашего разработчика как минимум на 1%.
Комментарии:
1. Я собираюсь предположить, что выделенный сервер заботится о связывании, верно? Или он также распространяет компоновку (в отличие от компиляции) по сети? Я надеюсь, что улучшение в любом случае составит более 1% для нашей довольно небольшой команды.
2. Сервер был там в основном для того, чтобы добавить много оперативной памяти и центрального процессора в сеть сборки. Компоновка не распространялась (может быть, сегодня — проверьте пробную версию), что ограничивало наше ускорение. Что касается увеличения производительности на 1%, ну, вы должны понимать, что разработчики обычно тратят менее 5% своего времени на компиляцию в первую очередь.
Ответ №3:
У Microsoft теперь есть BuildXL, но для него нужно отдельно создавать файл проекта.
FastBuild — другой вариант, но опять же, в отдельном формате проекта. msfastbuild может создавать проекты Visual Studio с помощью FastBuild, но… вы должны настроить его для своей цепочки сборки.
Все еще пытаюсь запустить один из них…