WikiDer > Distcc
Оригинальный автор (ы) | Мартин Пул |
---|---|
Разработчики) | Фергус Хендерсон |
Стабильный выпуск | |
Репозиторий | |
Написано в | C, C ++, Python |
Операционная система | Кроссплатформенность |
Тип | Компилятор |
Лицензия | Стандартная общественная лицензия GNU |
Интернет сайт | distcc |
В разработка программного обеспечения, distcc инструмент для ускорения сборник из исходный код используя распределенных вычислений через компьютерная сеть. При правильной настройке distcc может значительно сократить время компиляции проекта.[3]
Он предназначен для работы с C язык программирования (и его производные, например C ++ и Цель-C) и использовать GCC в качестве серверной части, хотя он обеспечивает различную степень совместимости с Компилятор Intel C ++ и Sun Microsystems' Компиляторный люкс Sun Studio.[4] Распространяется на условиях Стандартная общественная лицензия GNU, distcc - это бесплатно программное обеспечение.
Дизайн
distcc предназначен для ускорения компиляции за счет использования неиспользуемой вычислительной мощности на других компьютерах. Машина с установленным distcc может отправлять код для компиляции по сети на компьютер, на котором установлен distccd демон и установлен совместимый компилятор.[5]
distcc работает как агент для компилятора. Демон distcc должен работать на каждой из участвующих машин. Исходная машина вызывает препроцессор для обработки файлов заголовков директивы предварительной обработки (например, #ifdef
) и исходные файлы и отправляет предварительно обработанный источник на другие машины по сети через TCP либо в незашифрованном виде, либо с использованием SSH. Удаленные машины компилируют эти исходные файлы без каких-либо локальных зависимостей (таких как библиотеки, файлы заголовков или определения макросов) в объектные файлы и отправляют их обратно отправителю для дальнейшей компиляции.[6]
distcc версии 3 поддерживает режим (называемый насосный режим), в котором включенные файлы заголовков отправляются на удаленные машины, так что предварительная обработка также распространяется.
Связанное программное обеспечение
ccache это еще один инструмент, призванный сократить время компиляции на кеширование вывод из тех же исходных файлов ввода. ccache также может использовать distcc в качестве бэкэнда, обеспечивая распределенную компиляцию, если он еще не кэширован с помощью переменной среды CCACHE_PREFIX.
distcc был вариантом для распределенных сборок в версиях Apple Xcode пакет разработки до 4.3, но был удален.
мороженое было создано SUSE на основе distcc. Как и distcc, icecream берет задания на компиляцию из сборки и распределяет ее между удаленными машинами, обеспечивая параллельную сборку. Но в отличие от distcc, icecream использует центральный сервер, который динамически планирует задания компиляции на самый быстрый бесплатный сервер.[7]
Смотрите также
Рекомендации
- ^ «Релизы». Получено 26 апреля 2018 - через GitHub.
- ^ "distcc / НОВОСТИ у мастера". Получено 26 апреля 2018.
- ^ Лоуренс Бонни (22 июля 2004 г.). «Сократите время компиляции с помощью distcc». IBM. Получено 2011-08-24.
- ^ Мартин Пул (23 февраля 2007 г.). "Часто задаваемые вопросы о distcc". Distcc.googlecode.com. Архивировано из оригинал на 2009-09-07. Получено 2009-10-19.
- ^ Дэниел Роббинс (2004-02-01). «Распределенные вычисления и распределенные вычисления». Доктора Добба. Получено 2011-08-24.
- ^ В. Л. Симпсон (октябрь 2004 г.). «Ускорение компиляции с помощью Distcc». linuxgazette.net. Получено 2011-08-25.
- ^ icecream: Распределенный компилятор с центральным планировщиком для распределения нагрузки сборки, icecc, 27.12.2017, получено 2017-12-27