Перейти к содержимому

Incredibuild agent что это

  • автор:

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 использовались по умолчанию, а их там довольно много. Наверняка можно достичь ещё большей производительности, но нам был интересен «быстрый старт».

  1. Установить IncrediBuild на нужные компьютеры.
  2. Увеличить количество потоков в настройках PVS-Studio.
  3. Запустить анализ из консоли IncrediBuild.
  1. Проверка на 1 компьютере — 6 часов.
  2. Проверка в 26 потоков — 2 часа 10 минут.
  3. Проверка в 43 потока — 1 час 24 минуты.

Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Svyatoslav Razmyslov. Using IncrediBuild to Assist Analysis of a Large Project by PVS-Studio.

Прочитали статью и есть вопрос?

Часто к нашим статьям задают одни и те же вопросы. Ответы на них мы собрали здесь: Ответы на вопросы читателей статей про PVS-Studio, версия 2015. Пожалуйста, ознакомьтесь со списком.

IncrediBuild Agent

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% от действующего прайс-листа.

Купить лицензию IncrediBuild Agent в Украине

IncrediBuild Agent — это программное обеспечение для распределённых вычислений, которое позволяет с лёгкостью задействовать несколько компьютеров и ускорить работу своих приложений. При этом не нужно беспокоится за зависимости, которые присутствуют у распараллеленных процессах.

Почему следует купить IncrediBuild Agent

IncrediBuild Agent простая в использовании платформа для ускорения процессов на базе Windows с помощью передовой технологии Grid Computing для ускорения сборок Microsoft Visual Studio, процессов на основе make и других сложных процессов, работающих на платформе Windows.

  • Grid Computing — это форма распределенных вычислений, в которой различные части одного или нескольких процессов выполняются параллельно на компьютерах, подключенных к сети. В результате распределенного параллельного выполнения процесс значительно ускоряется. Вычислительная сеть динамически регулирует свою работу в соответствии с состоянием и доступностью участвующих компьютеров, обрабатывая различные сценарии отключения и восстановления. Наконец, вычислительная Grid гарантирует, что процесс будет корректно выполняться независимо от среды участвующих машин, файловой системы или базы установки.
  • XGE, основная технология IncrediBuild, представляет собой мощный, но простой в использовании движок Grid Computing для операционной системы Windows. С помощью XGE можно легко ускорить такие процессы, как сборки Visual Studio, сборки кода и сборок данных, сценарии QA, процедуры упаковки и даже пользовательские сценарии и приложения.

Лицензионный ключ (регистрационная информация) для активации IncrediBuild Agent доставляется на e-mail, который указывается покупателем при оформлении заказа.

Incredibuild: инструмент для ускорения разработки

невероятный

Incredibuild — мощный инструмент разработан одноименной компанией. Недавно он был обновлен до новой версии и является проприетарным, но мультиплатформенным, способным работать на Windows, Linux, а также на Android, Nintendo Switch, PlayStation 4, Xbox One и других платформах, хотя изначально предназначался для HPC. сектор.

IncrediBuild — это инструмент ускорения сборки. Поскольку только несколько человек одновременно компилируют на данной машине, почему бы не использовать простаивающие вычислительные мощности тех, кто не создает некоторые файлы тех, кто это делает? Небольшой сервер IncrediBuild будет установлен на каждом компьютере в локальной сети компании для создания и потоковой передачи файлов. Время компиляции будет разделено на количество машин в сети, если они в данный момент не используются. Так вам удается распределить нагрузку и ускорить компиляцию.

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

Если вы ищете аналогичный инструмент с открытым исходным кодом, есть альтернатива Incredibuild. для Linux называется Distcc. Этот инструмент был первоначально создан Мартином Пулом, и хотя сейчас он несколько заброшен, о нем стоит упомянуть. Он написан на C, C++ и Python, также является кроссплатформенным и распространяется под лицензией GPL.

distcc, как и Incredibuild, является инструментом сборки. компиляция исходного кода который использует распределенные вычисления по сети компьютеров, чтобы ускорить процесс и быстрее завершить большие проекты. Дизайн может работать с языками программирования C, C++, Objective-C и использует компилятор GCC в качестве серверной части. Однако у вас также может быть поддержка компилятора Intel C++, Sun Studio Compiler Suite и т. д.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Полный путь к статье: Любители Linux » SPA-программы » Incredibuild: инструмент для ускорения разработки

Будьте первым, чтобы комментировать

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *