Оптимизация сборки крупного проекта. Комплексный подход. (Виктор Стрелков, SECR-2012) — различия между версиями
Материал из 0x1.tv
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) (Batch edit: replace PCRE (\n\n)+(\n) with \2) |
||
(не показано 16 промежуточных версий этого же участника) | |||
== Видео == {{vimeoembed|53060946|800|450}} <!-- pollholder --> {{----}} == Примечания и отзывы == <!-- <blockquote>[©]</blockquote> --> * [http://2012.secrus.ruorg/talks/comprehensive-approach-to-optimizing-large-project-compilation Страница доклада на сайте конференции] <references/> [[Category <!-- topub --> {{stats|disqus_comments=0|refresh_time=2019-02-22T21:16:512021-08-31T17:41:11.807230479690|vimeo_comments=0|vimeo_plays=84|youtube_plays=0}} [[Категория:SECR-2012]] [[CategoryКатегория:DevOps]] [[Категория:Continuous Integration]] |
Текущая версия на 12:22, 4 сентября 2021
Аннотация
- Докладчик
- Виктор Стрелков
Любой разработчик крупного проекта как минимум раз в год сталкивается с увеличением времени сборки. Это особенно неприятно при использовании практики Continuous Integration, предполагающей постоянные пересборки проекта и сопутствующие активности. Длительная сборка становится бутылочным горлышком, сводящим на нет все преимущества непрерывной интеграции. В определенный момент простое увеличение машинных мощностей начинает давать все меньший эффект и возникает необходимость в комплексном решении проблемы.
В процессе разработки и последующего развития крупного разнородного приложения мы столкнулись с серьезными проблемами оптимизации. Успешно комбинируя различные подходы, нам удалось сократить время сборки проекта в десятки раз и удерживать его на приемлемом уровне, несмотря на активный рост. Варианты комплексного решения, позволяющего оптимизировать сборку большого проекта, будут представлены в докладе.
Стандартные настройки компилятора, позволяющие распараллелить компиляцию и (или) линковку, использование precompiled headers и аналогичные способы оптимизации достаточно хорошо описаны в документации. В докладе мы сконцентрируемся на комплексных подходах, которые в некоторых случаях могут применяться независимо от компилятора и языка программирования.
Основные вопросы, которые составят содержание доклада:
- автоматизация технологии unitybuild с помощью системы автоматизации сборки CMake и особенности ее применения с учетом аппаратной конфигурации сервера;
- практические методы использования технологии clcache и оптимальное сочетание ее с другими подходами;
- особенности названных технологий при использовании распределенных вычислений;
- преимущества и недостатки виртуализации сборочного сервера: потеря производительности или масштабирование и отказоустойчивость;
- анализ влияния скорости дисковых операций: SSD RAID 0 против RAM-Disk.
Видео
Примечания и отзывы
Plays:84
Comments:0