Оптимизация сборки крупного проекта: комплексный подход


Любой разработчик крупного проекта как минимум раз в год сталкивается с увеличением времени сборки. Это особенно неприятно при использовании практики Continuous Integration, предполагающей постоянные пересборки проекта и сопутствующие активности. Длительная сборка становится бутылочным горлышком, сводящим на нет все преимущества непрерывной интеграции. В определенный момент простое увеличение машинных мощностей начинает давать все меньший эффект и возникает необходимость в комплексном решении проблемы.

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

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

Основные вопросы, которые составят содержание доклада:

  • автоматизация технологии unitybuild с помощью системы автоматизации сборки CMake и особенности ее применения с учетом аппаратной конфигурации сервера;
  • практические методы использования технологии clcache и оптимальное сочетание ее с другими подходами;
  • особенности названных технологий при использовании распределенных вычислений;
  • преимущества и недостатки виртуализации сборочного сервера: потеря производительности или масштабирование и отказоустойчивость;
  • анализ влияния скорости дисковых операций: SSD RAID 0 против RAM-Disk.

Виктор Стрелков

Виктор СтрелковВиктор Стрелков

Руководитель отдела исследований и контроля качества компании Positive Technologies.

Начал работать в команде Positive Technologies в 2007 году. Создал подразделение, отвечающее за развитие инфраструктуры разработки в компании, и успешно руководит им на протяжении 4 лет. В числе ключевых задач: автоматизация разработки, сборки и деплоя существующих проектов компании; внедрение единой ALM-системы; реализация на процессном уровне и аппаратная поддержка передовых практик разработки ПО (в частности Continuous Integration, Code Review, Test Driven Development, Feature Driven Development).

Выступил с докладом на конференции Application Developer Days.

В последнее время увлекается гибкими методологиями и технологическими аспектами их эффективной поддержки в распределенных командах.

 


Комментарии

  • Pingback: Новости » Blog Archive » Оптимизация сборки крупного проекта


Оставить комментарий

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

© CEE-SECR 2012 • Email:
Powered by WordPress. • Hosted by Hosting Community • Developed by i-Help