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:

Exemple de rapport de profil HTML

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.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow