Buscar..


Perfilando una construcción

Antes de comenzar a ajustar su compilación de Gradle para el rendimiento, debe establecer una línea de base y determinar qué partes de la compilación tardan más tiempo. Para hacer esto, puede crear un perfil de su compilación agregando el argumento --profile a su comando de Gradle:

gradle --profile
./gradlew --profile

Una vez completada la compilación, verá un informe de perfil HTML para la compilación en ./build/reports/profile/ , que se ve algo así:

Ejemplo de informe de perfil HTML

Al hacer clic en las pestañas junto a Resumen , puede ver un desglose más detallado de dónde se gasta el tiempo.

Configurar bajo demanda

Si la creación de perfiles de su compilación muestra un tiempo considerable en la configuración de proyectos , la opción Configurar a pedido puede mejorar su rendimiento.

Puede habilitar el modo Configurar a petición editando $GRADLE_USER_HOME/.gradle/gradle.properties ( ~/.gradle/gradle.properties de manera predeterminada) y configurando org.gradle.configureondemand .

org.gradle.configureondemand=true

Para habilitarlo solo para un proyecto específico, edite el archivo gradle.properties ese proyecto.

Si Configurar a petición está habilitado, en lugar de configurar todos los proyectos por adelantado, Gradle solo configurará los proyectos que sean necesarios para la tarea que se está ejecutando.

Del manual de Gralde :

El modo de configuración bajo demanda intenta configurar solo los proyectos que son relevantes para las tareas solicitadas, es decir, solo ejecuta el archivo build.gradle de los proyectos que participan en la compilación. De esta manera, se puede reducir el tiempo de configuración de una gran compilación de varios proyectos. A largo plazo, este modo se convertirá en el modo predeterminado, posiblemente el único modo para la ejecución de la compilación de Gradle.

Ajuste de los parámetros de uso de memoria JVM para Gradle

Puede establecer o aumentar los límites de uso de la memoria (u otros argumentos de JVM) utilizados para las compilaciones de Gradle y el Daemon de Gradle editando $GRADLE_USER_HOME/.gradle/gradle.properties ( ~/.gradle/gradle.properties de forma predeterminada) y configurando org.gradle.jvmargs .

Para configurar estos límites solo para un proyecto específico, edite el archivo gradle.properties ese proyecto.

La configuración de uso de memoria predeterminada para las compilaciones de Gradle y el Daemon de Gradle son:

org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=256m

Esto permite una asignación de memoria máxima general (tamaño de pila) de 1 GB, y una asignación de memoria máxima para objetos "internos" permanentes de 256 MB. Cuando se alcanzan estos tamaños, se produce la recolección de basura, lo que puede disminuir significativamente el rendimiento.

Suponiendo que tenga memoria de sobra, fácilmente podría duplicar esto así:

org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m

Tenga en cuenta que dejará de ver el beneficio de aumentar XX:MaxPermSize antes que cuando Xmx aumente, deje de ser beneficioso.

Usa el Daemon Gradle

Puede habilitar el Daemon de Gradle para mejorar el rendimiento de sus construcciones.

El Daemon de Gradle mantiene el Marco de Gradle inicializado y en ejecución, y almacena los datos del proyecto en la memoria para mejorar el rendimiento.

Para una sola construcción

Para habilitar el demonio para una sola construcción, puede simplemente pasar el --daemon argumento para su gradle de comandos o script Gradle Envoltura.

gradle --daemon
./gradlew --daemon

Para todas las construcciones de un proyecto

Para habilitar el Daemon para todas las compilaciones de un proyecto, puede agregar:

org.gradle.daemon=true

Al archivo gradle.properties su proyecto.

Para todas las construcciones

Para habilitar el Daemon de Gradle de manera predeterminada, para cada compilación realizada por su cuenta de usuario en su sistema, edite $GRADLE_USER_HOME/.gradle/gradle.properties ( ~/.gradle/gradle.properties de manera predeterminada) y agregue esta línea:

org.gradle.daemon=true

También puede hacer esto en un solo comando en sistemas Mac / Linux / * nix:

touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties

O en Windows:

(if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo org.gradle.daemon=true >> "%USERPROFILE%/.gradle/gradle.properties")

Deshabilitando el daemon

Puede deshabilitar el Daemon para una construcción específica usando el argumento --no-daemon , o deshabilitarlo para un proyecto específico estableciendo explícitamente org.gradle.daemon=false en el archivo gradle.properties del proyecto.

Parando el daemon

Si desea detener un proceso Daemon manualmente, puede detener el proceso a través del administrador de tareas de su sistema operativo o ejecutar el comando gradle --stop . El interruptor --stop hace que Gradle solicite que todos los procesos Daemon en ejecución, de la misma versión de Gradle utilizada para ejecutar el comando, terminen ellos mismos. Normalmente, los procesos de Daemon terminarán automáticamente * después de * 3 horas de inactividad o menos .

Gradle construcciones paralelas

Gradle solo ejecutará una tarea a la vez de forma predeterminada, independientemente de la estructura del proyecto. Al usar el interruptor --parallel , puede forzar a Gradle a ejecutar subproyectos independientes, aquellos que no tienen dependencias implícitas o explícitas entre proyectos, en paralelo, lo que le permite ejecutar múltiples tareas al mismo tiempo, siempre y cuando esas tareas estén en diferentes proyectos.

Para construir un proyecto en modo paralelo:

gradle build --parallel

También puede hacer que la construcción en paralelo sea la predeterminada para un proyecto agregando la siguiente configuración al archivo gradle.properties del proyecto:

org.gradle.parallel=true

Usa la última versión de Gradle

El equipo de Gradle trabaja regularmente para mejorar el rendimiento de diferentes aspectos de las construcciones de Gradle. Si está utilizando una versión antigua de Gradle, está perdiendo los beneficios de ese trabajo. Intente actualizar a la última versión de Gradle para ver qué tipo de impacto tiene. Hacer esto es bajo riesgo porque muy pocas cosas se rompen entre versiones menores de Gradle.

El archivo de propiedades para el reiniciador de Gradle se puede encontrar en la carpeta de su proyecto en gradle/wrapper/ y se llama gradle-wrapper.properties . El contenido de ese archivo podría verse así:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-X.X.X.zip

Puede cambiar manualmente el número de versión XXX (versión actual) a YYY (versión más reciente) y la próxima vez que ejecute el contenedor, la nueva versión se descargará automáticamente.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow