En el desarrollo de software , distcc es una herramienta para acelerar la compilación de código fuente mediante el uso de computación distribuida a través de una red informática . Con la configuración correcta, distcc puede reducir drásticamente el tiempo de compilación de un proyecto. [3]
Autor (es) original (es) | Martin Pool |
---|---|
Desarrollador (es) | Fergus Henderson |
Lanzamiento estable | |
Repositorio | |
Escrito en | C , C ++ , Python |
Sistema operativo | Multiplataforma |
Tipo | Compilador |
Licencia | Licencia pública general GNU |
Sitio web | distcc |
Está diseñado para trabajar con el C lenguaje de programación (y sus derivados como C ++ y Objective-C ) y para el uso de GCC como motor, a pesar de que ofrece diversos grados de compatibilidad con el compilador Intel C ++ y Sun Microsystems ' Sun Studio Compiler Suite . [4] Distribuido bajo los términos de la Licencia Pública General GNU , distcc es software libre .
Diseño
distcc está diseñado para acelerar la compilación aprovechando la potencia de procesamiento no utilizada en otras computadoras. Una máquina con distcc instalado puede enviar código para ser compilado a través de la red a una computadora que tenga instalado el demonio distccd y un compilador compatible. [5]
distcc funciona como un agente del compilador. Un demonio distcc debe ejecutarse en cada una de las máquinas participantes. La máquina de origen invoca un preprocesador para manejar archivos de encabezado, directivas de preprocesamiento (como #ifdef
) y los archivos fuente y envía la fuente preprocesada a otras máquinas a través de la red a través de TCP sin cifrar o usando SSH . Las máquinas remotas compilan esos archivos fuente sin dependencias locales (como bibliotecas, archivos de encabezado o definiciones de macros) en archivos objeto y los envían de vuelta al creador para su posterior compilación. [6]
distcc versión 3 admite un modo (llamado modo de bomba ) en el que los archivos de encabezado incluidos se envían a las máquinas remotas, de modo que el preprocesamiento también se distribuye.
Software relacionado
ccache es otra herramienta destinada a reducir el tiempo de compilación almacenando en caché la salida de los mismos archivos de origen de entrada. ccache también puede usar distcc como su backend, proporcionando compilación distribuida si aún no está almacenado en caché usando la variable de entorno CCACHE_PREFIX.
distcc era una opción para compilaciones distribuidas en versiones de la suite de desarrollo Xcode de Apple antes de la 4.3, pero se ha eliminado.
icecream fue creado por SUSE basado en distcc. Al igual que distcc, icecream toma los trabajos de compilación de una compilación y los distribuye entre máquinas remotas, lo que permite una compilación en paralelo. Pero a diferencia de distcc, icecream utiliza un servidor central que programa dinámicamente los trabajos de compilación en el servidor gratuito más rápido. [7]
Ver también
Referencias
- ^ "Lanzamientos" . Consultado el 26 de abril de 2018 , a través de GitHub .
- ^ "distcc / NEWS en master" . Consultado el 26 de abril de 2018 .
- ^ Laurence Bonney (22 de julio de 2004). "Reducir el tiempo de compilación con distcc" . IBM . Consultado el 24 de agosto de 2011 .
- ^ Martin Pool (23 de febrero de 2007). "Distcc preguntas frecuentes" . Distcc.googlecode.com. Archivado desde el original el 7 de septiembre de 2009 . Consultado el 19 de octubre de 2009 .
- ^ Daniel Robbins (1 de febrero de 2004). "Computación distribuida y distcc" . Dr. Dobb's . Consultado el 24 de agosto de 2011 .
- ^ VL Simpson (octubre de 2004). "Compilación de velocidad con Distcc" . linuxgazette.net . Consultado el 25 de agosto de 2011 .
- ^ icecream: compilador distribuido con un programador central para compartir la carga de compilación , icecc, 2017-12-27 , consultado el 2017-12-27
enlaces externos
- Página web oficial
- modo de bomba de google distcc
- Comparación de sistema relacionado
- DMUCS: un sistema de compilación distribuido para múltiples usuarios
- Equilibrador de carga empresarial DistCC