Acelerando la construcción de Dojo
dojo-build (1)
Estamos ejecutando una compilación de nuestra aplicación utilizando Dojo 1.9 y la compilación en sí misma requiere una cantidad de tiempo desmesurada para completarse. En algún lugar a lo largo de las líneas de 10-15 minutos.
Nuestra aplicación no es enorme de ninguna manera. Quizás 150K LOC. Nada sofisticado. Además, al ejecutar esta compilación localmente usando Node, toma menos de un minuto.
Sin embargo, ejecutamos la construcción en un servidor RHEL con mucho espacio y memoria, usando Rhino. Además, las tareas se invocan a través de Ant.
También usamos Shrinksafe como el mecanismo de compresión, que también podría ser el problema. Parece que Shrinksafe está comprimiendo toda la biblioteca de Dojo (que es enorme) cada vez que se ejecuta la compilación, lo que parece una tontería.
¿Hay algo que podamos hacer para acelerar esto? O cualquier cosa que estamos haciendo mal?
Sí, eso es desordenado. Nunca he visto una compilación demorar tanto, incluso en una CPU Atom.
Además de la sugerencia anterior de usar Node.js y no Rhino (con diferencia, la mayor causa de destrucción del rendimiento de compilación), si todo tu código se ha agrupado correctamente en capas, puedes establecer optimize
para vaciar la cadena (no optimizar) y layerOptimize
a "closure"
(Closure Compiler) en su perfil de compilación, de modo que solo las capas se ejecutarán a través del optimizador.
Aparte de eso, debe asegurarse de que no haya algún problema con el sistema en el que está ejecutando la compilación. (Los archivos de compilación están en NAS con un enlace lento) ¿Ventilador de CPU reprimido que obliga a las CPU a subclockear? ¿CPU antigua con solo un núcleo? ¿RAM insuficiente / incorrecta? ¿Alguien más decidió instalar un servidor TF2 y no le informó?