gradle
Gradle Performance
Recherche…
Profilage d'une construction
Avant de commencer à adapter votre version de Gradle aux performances, vous devez établir une référence et déterminer quelles parties de la génération prennent le plus de temps. Pour ce faire, vous pouvez profiler votre build en ajoutant l'argument --profile
à votre commande Gradle:
gradle --profile
./gradlew --profile
Une fois la construction terminée, vous verrez un rapport de profil HTML pour la construction sous ./build/reports/profile/
, ressemblant à ceci:
En cliquant sur les onglets situés à côté de Résumé , vous pouvez voir une répartition plus détaillée du temps passé.
Configurer à la demande
Si le profilage de votre génération montre une perte de temps importante dans la configuration des projets , l'option Configurer à la demande peut améliorer vos performances.
Vous pouvez activer le mode Configure on Demand en modifiant $GRADLE_USER_HOME/.gradle/gradle.properties
( ~/.gradle/gradle.properties
par défaut) et en définissant org.gradle.configureondemand
.
org.gradle.configureondemand=true
Pour l'activer uniquement pour un projet spécifique, modifiez gradle.properties
fichier gradle.properties
ce projet.
Si l'option Configurer à la demande est activée, au lieu de configurer tous les projets à l'avance, Gradle ne configurera que les projets nécessaires à l'exécution de la tâche.
Extrait du manuel de Gralde :
Le mode Configuration à la demande tente de configurer uniquement les projets pertinents pour les tâches demandées, c'est-à-dire qu'il n'exécute que le fichier
build.gradle
des projets participant à la génération. De cette façon, le temps de configuration d'une grande construction multi-projets peut être réduit. À long terme, ce mode deviendra le mode par défaut, probablement le seul mode d’exécution de la version Gradle.
Réglage des paramètres d'utilisation de la mémoire JVM pour Gradle
Vous pouvez définir ou augmenter les limites d'utilisation de la mémoire (ou d'autres arguments JVM) utilisés pour les versions Gradle et le démon Gradle en modifiant $GRADLE_USER_HOME/.gradle/gradle.properties
( ~/.gradle/gradle.properties
par défaut) et org.gradle.jvmargs
.
Pour configurer ces limites uniquement pour un projet spécifique, modifiez gradle.properties
fichier gradle.properties
ce projet.
Les paramètres d'utilisation de la mémoire par défaut pour les versions de Gradle et le démon Gradle sont les suivants:
org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=256m
Cela permet une allocation de mémoire maximale générale (taille de segment de mémoire) de 1 Go et une allocation de mémoire maximale pour les objets "internes" permanents de 256 Mo. Lorsque ces tailles sont atteintes, le nettoyage de la mémoire se produit, ce qui peut réduire considérablement les performances.
En supposant que vous avez la mémoire à perdre, vous pourriez facilement les doubler comme ceci:
org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m
Notez que vous XX:MaxPermSize
voir les avantages de l’augmentation de XX:MaxPermSize
plus tôt que lorsque Xmx
augmente pour ne plus être bénéfique.
Utilisez le démon Gradle
Vous pouvez activer le démon Gradle pour améliorer les performances de vos builds.
Le démon Gradle conserve l'initialisation et l'exécution de Framework Gradle et met en cache les données de projet en mémoire pour améliorer les performances.
Pour une seule construction
Pour activer le démon pour une seule génération, vous pouvez simplement transmettre l'argument --daemon
à votre commande gradle
ou à votre gradle
Gradle Wrapper.
gradle --daemon
./gradlew --daemon
Pour toutes les versions d'un projet
Pour activer le démon pour toutes les versions d'un projet, vous pouvez ajouter:
org.gradle.daemon=true
Dans le fichier gradle.properties
votre projet.
Pour toutes les constructions
Pour activer le démon Gradle par défaut, pour chaque génération effectuée par votre compte d'utilisateur sur votre système, éditez $GRADLE_USER_HOME/.gradle/gradle.properties
( ~/.gradle/gradle.properties
par défaut) et ajoutez cette ligne:
org.gradle.daemon=true
Vous pouvez également le faire en une seule commande sur les systèmes Mac / Linux / * nix:
touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties
Ou sous Windows:
(if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo org.gradle.daemon=true >> "%USERPROFILE%/.gradle/gradle.properties")
Désactiver le démon
Vous pouvez désactiver le démon pour une construction spécifique à l'aide de l'argument --no-daemon
ou le désactiver pour un projet spécifique en définissant explicitement org.gradle.daemon=false
dans le fichier gradle.properties
du projet.
Arrêter le démon
Si vous souhaitez arrêter manuellement un processus Daemon, vous pouvez soit le supprimer via le gestionnaire de tâches de votre système d'exploitation, soit exécuter la commande gradle --stop
. Le commutateur --stop
oblige Gradle à demander que tous les processus Daemon en cours d'exécution, de la même version Gradle utilisée pour exécuter la commande, se terminent. D'ordinaire, les processus Daemon se terminent automatiquement * après * 3 heures d'inactivité ou moins .
Gradle Parallel construit
Gradle exécutera une seule tâche à la fois par défaut, quelle que soit la structure du projet. En utilisant le commutateur --parallel
, vous pouvez forcer Gradle à exécuter des sous-projets indépendants - ceux qui n’ont pas de dépendances de projet implicites ou explicites entre eux - en parallèle, ce qui lui permet d’exécuter plusieurs tâches en même temps. différents projets.
Pour construire un projet en mode parallèle:
gradle build --parallel
Vous pouvez également rendre la construction par défaut parallèle à un projet en ajoutant le paramètre suivant au fichier gradle.properties du projet:
org.gradle.parallel=true
Utiliser la dernière version de Gradle
L'équipe de Gradle travaille régulièrement sur l'amélioration des performances des différents aspects des versions de Gradle. Si vous utilisez une ancienne version de Gradle, vous ne profitez pas des avantages de ce travail. Essayez de passer à la dernière version de Gradle pour voir quel impact cela a. Cela est peu risqué car très peu de choses se cassent entre les versions mineures de Gradle.
Le fichier de propriétés de l'encapsuleur Gradle se trouve dans le dossier de votre projet sous gradle/wrapper/
et s'appelle gradle-wrapper.properties
. Le contenu de ce fichier pourrait ressembler à ceci:
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
Vous pouvez modifier manuellement le numéro de version XXX
(version actuelle) à YYY
(version plus récente) et la prochaine fois que vous exécuterez le wrapper, la nouvelle version sera téléchargée automatiquement.