Какие улучшения оборудования мы должны сделать, чтобы ускорить нашу сборочную машину? - PullRequest
5 голосов
/ 24 сентября 2010

В нашем отделе разработки работает сборочная машина, которую мы настроили на непрерывную сборку в течение рабочего дня. Что это делает:

  • Удаляет ранее извлеченный исходный код (5 минут)
  • Чистая проверка из Subversion (15 минут)
  • Создает целую кучу кода на C ++ и .NET (35 минут)
  • Сборка инсталляторов и запуск модульных тестов (5 минут)

Учитывая вышесказанное, какое влияние окажет добавление различного оборудования на сокращение времени, необходимого для выполнения вышеупомянутого?

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

Сервер Subversion в настоящее время является виртуальной машиной. Поможет ли переключение на физическую машину медленной проверке?

Какое влияние окажет обновление с процессора Core 2 Duo на i7?

Любые другие предложения по ускорению выше?

Ответы [ 3 ]

2 голосов
/ 27 сентября 2010

Одна хитрость, которая может ускорить процесс проверки SVN, может состоять в том, чтобы иметь рабочую копию на компьютере сборки, обновить рабочую копию и выполнить svn export из рабочей копии в каталог сборки.Это должно снизить нагрузку на сервер SVN и уменьшить сетевой трафик.

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

2 голосов
/ 24 сентября 2010

Я думаю, вы сами сделали хорошие предложения. Определенно добавьте более быстрый жесткий диск (SSD или другой) и обновите процессор. Я думаю, что ваш репозиторий кода (Subversion) должен определенно находиться на физической машине, в идеале отдельно от вашей машины сборки. Я думаю, вы заметите большую разницу после обновления оборудования. Кроме того, убедитесь, что на компьютере не запущены другие большие задачи одновременно с задачами сборки (например, проверка на вирусы), чтобы задачи сборки не замедлялись.

Как ваша сборочная машина настроена на выполнение своих задач? Вы используете программное обеспечение для непрерывной интеграции? Является ли сама машина сервером или обычным настольным компьютером?

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

Еще один способ ускорить SVN - использовать бинарный протокол вместо HTTP.

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

...