IncrediBuild
IncrediBuild позволяет значительно уменьшить время сборки кода на любой версии Microsoft Visual Studio благодаря распараллеливанию компиляции кода на C / C++ / C#, настройке правил сборки и использованию возможностей других компьютеров, доступных в локальной сети. При этом исходные файлы, конфигурации компьютера и код никак не изменяются и не повреждаются.
IncrediBuild – это готовый к использованию инструмент, которому не требуется интеграция, дополнительная подготовка и подключение других интерфейсов.
После установки агента IncrediBuild на компьютер разработчика, панель инструментов и меню IncrediBuild автоматически добавятся в Visual Studio IDE. Панель инструментов IncrediBuild позволяет эффективно компилировать, де-компилировать, очищать код и многое другое.
Основные достоинства IncrediBuild для Visual Studio:
- Полная интеграция со средой Visual Studio.
- Запуск «из коробки» без необходимости дополнительной настройки приложения или проектов.
- Позволяет использовать свободные вычислительные мощности машин, находящихся в локальной сети (на них также должны быть установлены агенты IncrediBuild), а также может масштабироваться до общедоступного облака.
- Надежность и отказоустойчивость – залог успешного создания сборки.
- Не требует дополнительной установки, технического обслуживания или специального оборудования.
Обладает интерфейсом, который визуализирует процесс сборки, отображает ошибки и входные данные, а также позволяет просматривать исходные данные проектов. - Для создания проекта можно использовать как стандартное меню Visual Studio, так и меню IncrediBuild.
IncrediBuild for Make & Build Tools

Используя свободные процессорные мощности связанных машин, IncrediBuild значительно ускоряет сборку на основе Make и многих других механизмов (SCons, Jam, jom, Ant и gmake). Прямо «из коробки» IncrediBuild предлагает использовать множество удобных инструментов, а также поможет ускорить работу инструментов сборки, компиляции и многие другие трудоёмкие процессы, которые необходимы проекту, для этого практически не нужно редактировать сами make-файлы. IncrediBuild может подстраиваться под разные Make-сценарии, предоставляя новые возможности для ускорения других элементов сборки (модульного тестирования, упаковки, регрессионных тестов и т.д.).
Ускорение сборки Make-файлов
IncrediBuild эффективно распределяет процессы, необходимые для сборки Make-файла. Для этого приложение создает необходимые задачи на удаленных компьютерах, при этом эмулируя среду и файловую систему компьютера-инициатора. Это позволяет избежать необходимости копирования файлов и установки дополнительных приложений на других устройствах.
Ускорение Make-инструментов, поддерживающих локальное параллельное выполнение задач
Многие Make-инструменты поддерживает распараллеливание задач, используя все преимущества многопроцессорных/многоядерных устройств.
Данная функция позволяет:
- Указать «пустой» переключатель – так Make-инструмент будет параллельно обрабатывать несколько задач, автоматически подстраиваясь под количество доступных ядер/процессоров на используемом устройстве.
Указать переключатель с определенным значением – Make-инструмент приравняет это значение к количеству задач, которые необходимо параллельно выполнять. - Пример: переключателю -J присвоено значение 4, Make-инструмент будет параллельно обрабатывать максимум 4 процесса на доступной машине. Если переключателю J не присвоено значение, значит система автоматически определит объем доступной мощности и будет выполнять задачи, исходя из полученных данных.
- С IncrediBuild можно указывать даже, казалось бы, невероятные значения. Например, переключатель -J со значением 100. Это даст установку на параллельную обработку 100 процессов, будто на используемом компьютере доступно 100 свободных ядер. IncrediBuild в свою очередь эффективно распределит эти 100 задач по всем компьютерам, доступным в сети. Экспериментируйте с –J-ключами, чтобы подобрать такое значение, которое позволит добиться наилучшей производительности.
IncrediBuild для Dev Tools

Часто бывает, что специализированные приложения (разрабатываемые внутри компании или сторонними поставщиками) запускают долгие, сложные и ресурсоемкие процессы.
Вот несколько примеров:
- Инструменты управления различными процессами (TFS, TeamCity и Jenkins).
- Собственные приложения, необходимые для обработки и создания конкретных файлов (обработка изображений, кодирование звука, сжатие данных и многое другое).
- Приложения, выполняющие моделирование и анализ.
- Собственные механизмы реализации сборки кода/данных.
IncrediBuild для Dev Tools ускорит ключевые процессы, необходимые для разработки приложений, включая тесты качества, анализ кода, сборку активов, упаковку и стресс-тестирование. Это поможет сократить время, требуемое на цикл работы и оценку качества продукта, улучшит эффективность, а также поможет укладываться даже в самые строгие дедлайны.
IncrediBuild for Consoles

IncrediBuild предлагает готовое решение для ускорения разработки игр. Оно поддерживает последние версии Visual Studio 2015 и настроено для работы с Make и Build инструментами. IncrediBuild активно используют средние и крупные игровые студии, а также поставщики движков со всего мира. Набор IncrediBuild подойдет для разработчиков как компьютерных, так и консольных (Xbox 360/One, Sony PlayStation2/3/4, PS-Vita, Nintendo Wii UTM/3DSTM/Wii) игр.
Многие разработчики также используют IncrediBuild для Dev Tools, чтобы ускорить такие процессы, как:
- Рендеринг.
- Сжатие текста.
- Затенение.
- Создание освещения.
- AI-обработка изображений.
- Сборка кода.
- Шифрование.
- Тестирование.
- QA.
- Анализ кода.
- Специализированные задачи, необходимые для определенных проектов.
Где купить? По вопросам приобретения обращайтесь к нам
IncrediBuild для проверки большого проекта с помощью PVS-Studio

PVS-Studio — статический анализатор, выявляющий ошибки в исходном коде приложений на языке C/C++. Подобно компилятору, анализатор обходит файл за файлом в каталоге с исходниками проекта, выполняя свою задачу. Но и без использования внешних инструментов, сборка некоторых проектов может длиться несколько часов. Статический анализ такого проекта будет занимать ещё больше времени. Для сборки крупных проектов, некоторые разработчики прибегают к использованию распределённой сборки с помощью инструмента IncrediBuild. В данной статье не будут рассмотрены детали интеграции PVS-Studio в IncrediBuild, а будет рассказано о проверке большого проекта, замерах времени и других интересных фактах.
Об инструментах PVS-Studio и IncrediBuild
PVS-Studio выполняет анализ C/C++ кода и подсказывает программисту, где находятся возможные ошибки, или указывает на участки кода, которые могут повлечь проблемы в будущем.
Анализатор состоит из нескольких частей, и проверку каждого файла с исходным кодом выполняет процесс PVS-Studio.exe (ядро анализатора). Далее я буду использовать термин «поток», подразумевая, что в одном потоке запущен один процесс PVS-Studio.exe для проверки одного исходно файла проекта. А файлов будет очень много…
IncrediBuild — программное обеспечение для распределённых вычислений, которое позволяет с лёгкостью задействовать несколько компьютеров и ускорить работу своих приложений. При этом не нужно беспокоится за зависимости, которые присутствуют у распараллеленных процессах.
Мы будем использовать IncrediBuild, чтобы выполнить анализ проекта во много потоков, используя дополнительные компьютеры.
О проверяемом проекте
Проверяемый проект пожелал быть неназванным, но он имеет около 7 млн. строк исходного кода. Размер кодовой базы — 300 MB, и около 9000 файлов. Проверка такого проекта анализатором PVS-Studio на компьютере с процессором Intel Core i7-4770 3.40 GHz и 16 GB ОЗУ в 8 потоков занимает около 6 часов. Далее я расскажу, как с помощью инструмента IncrediBuild и нескольких компьютеров удалось сильно ускорить время анализа проекта.
Результаты
Во всех тестах использовались компьютеры примерно одной конфигурации, позволяя выполнять анализ в 8 потоков на каждом из них.
При настройке IncrediBuild на компьютерах, один из них настраивается как координатор, остальные настраиваются как агенты, которые подключаются к координатору. Т.к. проверка проекта запускалась на агенте, то на этом компьютере в настройках было задано загружать только 1 поток, чтобы излишняя нагрузка не мешала сбору результатов. Для координатора тоже было задано выполнять вычисления только в 1 поток.
Тест первый
- Координатор (1 поток);
- Агент N1 (1 поток, на нём запускался анализ);
- Агент N2 (8 потоков);
- Агент N3 (8 потоков);
- Агент N4 (8 потоков).
На рисунке 1 представлена проверка проекта анализатором в 26 потоков.

Рисунок 1 — Проверка проекта анализатором в 26 потоков
Для читателей, не знакомых с IncrediBuild, поясню, что зелёной полоской обозначается 1 процесс, который успешно отработал на компьютере с именем, которое написано слева. На полоске пишется имя процесса. А по временной шкале снизу можно определить, в какой момент времени процесс стартовал и завершился, таким образом сразу видна длительность работы любого распределённого процесса.
На рисунке выше запечатлена проверка довольно крупных исходных файлов. Распараллеливание выполняется очень равномерно и эффективно при длительной загрузке потоков.
На рисунке 2 представлен анализ разных по объёму файлов исходного кода.

Рисунок 2 — Проверка мелких и крупных файлов проекта в 26 потоков
Как мы видим, быстрое завершение потоков приводит к накладным расходам на создание новых потоков и происходит небольшое простаивание некоторых компьютеров. Но в целом распараллеливание выполняется очень хорошо. Анализ проекта выполнился за 2 часа 10 минут вместо 6 часов, очень даже неплохо.
Тест второй
- Координатор (1 поток);
- Агент N1 (2 потока, на нём запускался анализ);
- Агент N2 (8 потоков);
- Агент N3 (8 потоков);
- Агент N4 (8 потоков);
- Агент N5 (8 потоков);
- Агент N6 (8 потоков).
На рисунке 3 представлена проверка проекта анализатором в 43 потока.

Рисунок 3 — Проверка проекта анализатором в 43 потока.
Список из 43 потоков не удаётся увидеть целиком, но хорошо видно, как возросло простаивание компьютеров при проверке маленьких файлов. Но всё равно выглядит очень здорово, учитывая, что общее время анализа составило уже 1 час 24 минуты вместо 6 часов и из приложенных усилий было только быстрая установка IncrediBuild на нужные компьютеры. Для настройки PVS-Studio потребовалось изменить всего 1 пункт в настройках — задать количество потоков.
Заключение
Воспользовавшись инструментом IncrediBuild, который обычно присутствует для сборки очень крупных проектов, мы смогли ускорить время анализа проекта с помощью PVS-Studio в 4.2 раза, задействовав несколько компьютеров разработчиков, которые сидели рядом. Все настройки IncrediBuild использовались по умолчанию, а их там довольно много. Наверняка можно достичь ещё большей производительности, но нам был интересен «быстрый старт».
- Установить IncrediBuild на нужные компьютеры.
- Увеличить количество потоков в настройках PVS-Studio.
- Запустить анализ из консоли IncrediBuild.
- Проверка на 1 компьютере — 6 часов.
- Проверка в 26 потоков — 2 часа 10 минут.
- Проверка в 43 потока — 1 час 24 минуты.

Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Svyatoslav Razmyslov. Using IncrediBuild to Assist Analysis of a Large Project by PVS-Studio.
Прочитали статью и есть вопрос?
Часто к нашим статьям задают одни и те же вопросы. Ответы на них мы собрали здесь: Ответы на вопросы читателей статей про PVS-Studio, версия 2015. Пожалуйста, ознакомьтесь со списком.
Разработка
Incredibuild ускоряет компиляцию, тесты и множество других ресурсоемких рабочих нагрузок, плавно и одновременно распределяя процессы между простаивающими процессорами в вашей локальной сети или в облаке. Данная технология превращает каждый вычислительный хост в суперкомпьютер с сотнями ядер и гигабайтами памяти, что существенно сокращает время вычислений для огромного количества приложений. Но как это работает?
В основе Incredibuild лежит уникальная технология виртуализации Virtualized Distributed Processing™. Принцип прост: когда рабочая нагрузка, состоящая из нескольких параллельных процессов, выполняется с помощью Incredibuild, ее процессы автоматически и динамически распределяются между простаивающими процессорами на удаленных машинах в вашей сети или облаке.
Особенности технологии Incredibuild
В компаниях с сотнями машин общее число простаивающих процессоров в любой момент времени может исчисляться тысячами. Incredibuild использует эти неиспользуемые ядра для турбоускорения рабочих нагрузок, требующих большой вычислительной мощности. Решение может использовать простаивающие процессоры в частном или публичном облаке компании и даже на машинах пользователей. Данная технология работает в фоновом режиме, не вмешиваясь в их работу.
Incredibuild запускает удаленные процессы в защищенной программной среде. Все, что нужно процессу для правильной работы, динамически эмулируется Incredibuild с локального хоста на удаленную машину. Все выходные данные, сгенерированные процессом — вывод std, ошибки, коды возврата или файлы — автоматически синхронизируются с локальным хостом, как если бы процесс выполнялся локально.
Усилия, необходимые для поддержания Incredibuild, близки к нулю. Нет необходимости иметь доступ к хранилищу изображений виртуальной машины или копировать файлы, скрипты или наборы инструментов на удаленные машины. Вы даже можете работать с различными версиями операционной системы. Технология Incredibuild без проблем делает эту работу за вас.
Не требует установки на удаленные машины компонентов помимо легковесного агента Incredibuild. Это означает, что при ускорении компиляции Visual Studio не нужно устанавливать Visual Studio, ее набор инструментов или исходный код на удаленные компьютеры. При этом снижаются затраты на лицензирование и минимизируется воздействие на удаленные машины. Incredibuild также устраняет необходимость в техническом обслуживании, позволяя легко масштабировать систему под дополнительные локальные и облачные ресурсы. Таким образом достигается непрерывное обслуживание при обновлении или смене пользователями набора инструментов или рабочих нагрузок.
Incredibuild обеспечивает ускорение любых процессов. Это означает, что вы можете использовать одну и ту же среду Incredibuild для ускорения множества различных типов вычислительных интенсивных рабочих нагрузок. Это повышает ценность развертывания Incredibuild и делает возможным дальнейший рост.
Преимущества использования
Для разработчиков:
- Сокращается время ожидания компиляции и исключается переключение контекста.
- Полная сборка и компиляция проекта в любое время.
- Отсутствие необходимости поиска компромисса между полной сборкой и сборкой отдельных веток.
- Устройства разработчиков свободны для работы во время компиляции, так как нагрузка распределяется на другие устройства.
- Быстрое обнаружение ошибок и повышение эффективности сборки с помощью визуализации.
Не нужно больше ждать окончания сборки!
Для менеджеров релизов:
- Возможность сборки проекта после каждого коммита, не дожидаясь ночной сборки.
- Контроль времени сборки.
- Запускайте новые сборки, дополнительные конфигурации и циклы QA без замедления сборки проекта.
- Быстрая обратная связь с разработчиками.
- Быстрый поиск виноватых в ошибках сборки.
Не выбирайте между скоростью и качеством!
Для бизнеса:
- Более короткие циклы релизов сокращают затраты на разработку и повышают качество.
- Исправление ошибок в реальном времени позволяет выпускать лучшие продукты на рынок намного быстрее.
- Максимальная окупаемость Ваших активов — от производительности команды до мощности процессора.
- Поддерживайте конкурентоспособность и гибкость. Максимально используйте Continuous Delivery.
Выпускайте продукт быстрее или это сделает кто-то другой!
IncrediBuild Acceleration Solutions

27.09.2019 Новая акция на лицензии PRTG. Скидка 10% на лицензии с 36 месяцами обслуживанияС 1 октября Paessler стартует акцию на все новые лицензии с техподдержкой на 3 года. Вам предоставляется дополнительная скидка 10 %, если Вы выбираете лицензию с 3 годами техобслуживания и размещаете заказ до 27.12.2019. Уже заявленные сделки в акции не участвуют. 03.09.2019 Промо-акция на лицензии Veeam по количеству инстансов редакции Enterprise PlusМы рады сообщить о начале новой промо-акции, которая позволит Вам сэкономить до 33% при приобретении подписки Veeam редакции Enterprise Plus. Это отличная возможность обновить решение Veeam редакции Enterprise Plus. 09.07.2019 Скидки на CorelDRAW для типографий и рекламных агентствРоссийский офис Corel сообщает о том, что в период с 8 июля по 30 августа 2019 года на CorelDRAW действуют специальные цены для типографий и предприятий рекламной индустрии.
Данные организации имеют право закупки комплекта лицензий CorelDRAW Graphics Suite 2019 редакции Business и Upgrade Protection Program (как полную версию, так и Upgrade, как версию для Windows, так и для Mac) со скидкой 20% от действующего прайс-листа.
