distcc

distcc
Оригинальный автор(ы)Мартин Пул
Разработчик(и)Фергус Хендерсон
Стабильный релиз
3.4 [1]  / 11 мая 2021 г. ; 3 года назад ( 11 мая 2021 г. )
Репозиторий
  • github.com/distcc/distcc
Написано вС , С++ , Питон
Операционная системаКроссплатформенный
ТипКомпилятор
ЛицензияСтандартная общественная лицензия GNU
Веб-сайтdistcc.github.io
Distcc

В разработке программного обеспечения distcc это инструмент для ускорения компиляции исходного кода с помощью распределенных вычислений по компьютерной сети . При правильной настройке distcc может значительно сократить время компиляции проекта. [2]

Он разработан для работы с языком программирования C (и его производными, такими как C++ и Objective-C ) и использования GCC в качестве бэкэнда, хотя он обеспечивает различную степень совместимости с компилятором Intel C++ и Sun Studio Compiler Suite от Sun Microsystems . [3] Распространяясь на условиях GNU General Public License , distcc является свободным программным обеспечением .

Дизайн

distcc разработан для ускорения компиляции за счет использования неиспользуемой вычислительной мощности на других компьютерах. Машина с установленным distcc может отправлять код для компиляции по сети на компьютер, на котором установлен демон distccd и совместимый компилятор. [4]

distcc работает как агент для компилятора. Демон distcc должен быть запущен на каждой из участвующих машин. Исходная машина вызывает препроцессор для обработки заголовочных файлов, директив предварительной обработки (таких как #ifdef) и исходных файлов и отправляет предварительно обработанный исходный код другим машинам по сети через TCP либо в незашифрованном виде, либо с использованием SSH . Удаленные машины компилируют эти исходные файлы без каких-либо локальных зависимостей (таких как библиотеки, заголовочные файлы или определения макросов) в объектные файлы и отправляют их обратно создателю для дальнейшей компиляции. [5]

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

distcc был опцией для распределенных сборок в версиях пакета разработки Apple Xcode до 4.3, но был удален.

Гома

Goma — аналогичный инструмент, созданный Google для замены distcc и ccache при компиляции Chromium.

Кэш

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

Мороженое

icecream был создан SUSE на основе distcc. Как и distcc, icecream берет задания компиляции из сборки и распределяет их между удаленными машинами, позволяя выполнять параллельную сборку. Но в отличие от distcc, icecream использует центральный сервер, который динамически планирует задания компиляции на самом быстром свободном сервере. [6]

Смотрите также

Ссылки

  1. ^ "Выпуск 3.4". 11 мая 2021 г. Получено 21 мая 2021 г.
  2. ^ Лоренс Бонни (2004-07-22). "Уменьшите время компиляции с помощью distcc". IBM . Получено 2011-08-24 .
  3. ^ Мартин Пул (2007-02-23). ​​"distcc часто задаваемые вопросы". Distcc.googlecode.com. Архивировано из оригинала 2009-09-07 . Получено 2009-10-19 .
  4. ^ Дэниел Роббинс (2004-02-01). "Distcc & Distributed Computing". Dr.Dobb's . Получено 2011-08-24 .
  5. ^ VL Simpson (октябрь 2004 г.). "Ускоренная компиляция с Distcc". linuxgazette.net . Получено 25-08-2011 .
  6. ^ icecream: Распределенный компилятор с центральным планировщиком для распределения нагрузки сборки, icecc, 2017-12-27 , получено 2017-12-27
  • Официальный сайт
  • режим насоса google distcc
  • Сравнение родственных систем
  • DMUCS – распределенная многопользовательская система компиляции
  • Балансировщик нагрузки предприятия DistCC
Взято с "https://en.wikipedia.org/w/index.php?title=Distcc&oldid=1233184511"