gradle
Gradle Performance
Suche…
Erstellen eines Profils
Bevor Sie mit der Optimierung Ihres Gradle-Builds beginnen, sollten Sie eine Baseline festlegen und herausfinden, welche Teile des Builds die meiste Zeit in Anspruch nehmen. Dazu können Sie Ihr Build profilieren, indem Sie dem Gradle-Befehl das Argument --profile
hinzufügen:
gradle --profile
./gradlew --profile
Nachdem der Build abgeschlossen ist, wird unter ./build/reports/profile/
ein HTML-Profilbericht für den Build ./build/reports/profile/
. Dieser sieht etwa wie ./build/reports/profile/
:
Wenn Sie auf die Registerkarten neben Zusammenfassung klicken, können Sie eine detailliertere Aufschlüsselung des Zeitaufwands anzeigen.
Konfigurieren Sie bei Bedarf
Wenn die Profilerstellung Ihres Builds viel Zeit für das Konfigurieren von Projekten bedeutet , kann die Option Auf Anforderung konfigurieren die Leistung verbessern.
Sie können den On-Demand-Modus $GRADLE_USER_HOME/.gradle/gradle.properties
indem Sie $GRADLE_USER_HOME/.gradle/gradle.properties
(standardmäßig ~/.gradle/gradle.properties
) org.gradle.configureondemand
und org.gradle.configureondemand
.
org.gradle.configureondemand=true
Um es nur für ein bestimmtes Projekt zu aktivieren, bearbeiten gradle.properties
stattdessen die Datei gradle.properties
dieses Projekts.
Wenn Nach Bedarf konfigurieren aktiviert ist, konfiguriert Gradle nicht alle Projekte im Voraus, sondern konfiguriert nur Projekte, die für die auszuführende Aufgabe erforderlich sind.
Aus dem Gralde-Handbuch :
Der Modus "Configuration on Demand" versucht, nur Projekte zu konfigurieren, die für angeforderte Aufgaben relevant sind, dh er führt nur die
build.gradle
Datei von Projekten aus, die am Build teilnehmen. Auf diese Weise kann die Konfigurationszeit eines großen Multiprojekt-Builds reduziert werden. Langfristig wird dieser Modus zum Standardmodus, möglicherweise der einzige Modus für die Ausführung von Gradle Build.
Anpassen der JVM-Speicherverwendungsparameter für Gradle
Sie können die für Gradle-Builds und den Gradle-Daemon verwendeten Speicherbenutzungsgrenzwerte (oder andere JVM-Argumente) festlegen oder erhöhen, indem Sie $GRADLE_USER_HOME/.gradle/gradle.properties
(standardmäßig ~/.gradle/gradle.properties
) ~/.gradle/gradle.properties
und die org.gradle.jvmargs
.
Um diese Grenzwerte nur für ein bestimmtes Projekt zu konfigurieren, bearbeiten gradle.properties
stattdessen die Datei gradle.properties
dieses Projekts.
Die Standardeinstellungen für die Speichernutzung für Gradle-Builds und den Gradle-Daemon sind:
org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=256m
Dies ermöglicht eine allgemeine maximale Speicherzuordnung (Heap-Größe) von 1 GB und eine maximale Speicherzuordnung für permanente "interne" Objekte von 256 MB. Wenn diese Größen erreicht werden, erfolgt eine Garbage Collection, wodurch die Leistung erheblich beeinträchtigt werden kann.
Angenommen, Sie haben den Speicher übrig, könnten Sie diese wie folgt verdoppeln:
org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m
Beachten Sie, dass Sie nicht mehr von einer Erhöhung von XX:MaxPermSize
profitieren können XX:MaxPermSize
früher, als wenn Xmx
zunimmt, wird der Nutzen zunehmen.
Benutze den Gradle Daemon
Sie können den Gradle-Daemon aktivieren, um die Leistung Ihrer Builds zu verbessern.
Der Gradle-Daemon lässt das Gradle-Framework initialisiert und ausgeführt werden und speichert Projektdaten im Arbeitsspeicher, um die Leistung zu verbessern.
Für einen einzelnen Build
Um den Daemon für einen einzelnen Build zu aktivieren, können Sie einfach den Pass --daemon
Argument zu Ihrem gradle
Befehl oder Gradle Wrapper - Skript.
gradle --daemon
./gradlew --daemon
Für alle Builds eines Projekts
Um den Daemon für alle Builds eines Projekts zu aktivieren, können Sie Folgendes hinzufügen:
org.gradle.daemon=true
In die Datei gradle.properties
Ihres Projekts.
Für alle Builds
Um den Gradle-Daemon standardmäßig zu aktivieren, bearbeiten $GRADLE_USER_HOME/.gradle/gradle.properties
für jedes Build, das von Ihrem Benutzerkonto in Ihrem System erstellt wurde, $GRADLE_USER_HOME/.gradle/gradle.properties
(standardmäßig ~/.gradle/gradle.properties
) und fügen Sie diese Zeile hinzu:
org.gradle.daemon=true
Sie können dies auch in einem einzigen Befehl auf Mac / Linux / * nix-Systemen tun:
touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties
Oder unter Windows:
(if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo org.gradle.daemon=true >> "%USERPROFILE%/.gradle/gradle.properties")
Deaktivieren des Daemons
Sie können den Daemon für ein bestimmtes Build mit dem Argument --no-daemon
deaktivieren oder für ein bestimmtes Projekt deaktivieren, indem Sie org.gradle.daemon=false
explizit in der Datei gradle.properties
des Projekts gradle.properties
.
Den Daemon stoppen
Wenn Sie einen Daemon-Prozess manuell beenden möchten, können Sie den Prozess entweder über den Task-Manager Ihres Betriebssystems gradle --stop
oder den gradle --stop
. Mit --stop
Schalter --stop
Gradle an, dass alle --stop
Daemon-Prozesse derselben Gradle-Version, die zum Ausführen des Befehls verwendet wurde, sich selbst beenden. Normalerweise beenden sich Daemon-Prozesse automatisch * nach * 3 Stunden Inaktivität oder weniger .
Gradle Parallel baut auf
Gradle führt unabhängig von der Projektstruktur standardmäßig immer nur eine Aufgabe aus. Mit der --parallel
können Sie Gradle zwingen, unabhängige Teilprojekte parallel auszuführen, --parallel
solche, die keine impliziten oder expliziten Projektabhängigkeiten aufweisen, sodass mehrere Aufgaben gleichzeitig ausgeführt werden können verschiedene Projekte.
Projekte parallel erstellen:
gradle build --parallel
Sie können das parallele Erstellen auch als Standard für ein Projekt festlegen, indem Sie die folgende Einstellung zur Datei gradle.properties des Projekts hinzufügen:
org.gradle.parallel=true
Verwenden Sie die neueste Version von Gradle
Das Gradle-Team arbeitet regelmäßig an der Verbesserung der Leistung verschiedener Aspekte von Gradle-Builds. Wenn Sie eine alte Version von Gradle verwenden, verpassen Sie die Vorteile dieser Arbeit. Versuchen Sie, ein Upgrade auf die neueste Version von Gradle durchzuführen, um zu sehen, welche Auswirkungen dies hat. Dies ist ein geringes Risiko, da nur sehr wenige Dinge zwischen den kleineren Versionen von Gradle auftreten.
Die Eigenschaftendatei für den Gradle-Wrapper befindet sich in Ihrem Projektordner unter gradle/wrapper/
und heißt gradle-wrapper.properties
. Der Inhalt dieser Datei könnte folgendermaßen aussehen:
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
Sie können die Versionsnummer XXX
(aktuelle Version) manuell in YYY
(neuere Version) ändern. YYY
Sie den Wrapper das nächste Mal ausführen, wird die neue Version automatisch heruntergeladen.