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/ :

Beispiel für einen HTML-Profilbericht

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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow