gradle
Prestaties verbeteren
Zoeken…
Profileren van een build
Voordat u begint met het afstemmen van uw Gradle-build voor prestaties, moet u een basislijn opstellen en uitzoeken welke delen van de build de meeste tijd kosten. Om dit te doen, kunt u uw build profileren door het argument --profile
toe te voegen aan uw Gradle-opdracht:
gradle --profile
./gradlew --profile
Nadat de build is voltooid, ziet u een HTML-profielrapport voor de build onder ./build/reports/profile/
, dat er ongeveer zo uitziet:
Door op de tabbladen naast Samenvatting te klikken, kunt u een meer gedetailleerd overzicht zien van waar tijd wordt besteed.
Configureer op aanvraag
Als het profileren van uw build veel tijd besteedt aan het configureren van projecten , kan de optie Configure on Demand uw prestaties verbeteren.
U kunt de modus Configureren op aanvraag inschakelen door $GRADLE_USER_HOME/.gradle/gradle.properties
( ~/.gradle/gradle.properties
standaard te ~/.gradle/gradle.properties
) en org.gradle.configureondemand
.
org.gradle.configureondemand=true
Om het alleen voor een specifiek project in te schakelen, bewerkt u in plaats daarvan het bestand gradle.properties
dat project.
Als Configure on Demand is ingeschakeld, configureert Gradle in plaats van alle projecten vooraf te configureren, alleen projecten die nodig zijn voor de taak die wordt uitgevoerd.
Uit de Gralde-handleiding :
Configuration on demand-modus probeert alleen projecten te configureren die relevant zijn voor de gevraagde taken, dwz het voert alleen het
build.gradle
bestand uit van projecten die deelnemen aan de build. Op deze manier kan de configuratietijd van een groot project met meerdere projecten worden verkort. Op de lange termijn wordt deze modus de standaardmodus, mogelijk de enige modus voor uitvoering van Gradle-build.
JVM-geheugengebruiksparameters afstemmen voor Gradle
U kunt geheugenlimieten (of andere JVM-argumenten) die worden gebruikt voor Gradle-builds en de Gradle Daemon instellen of verhogen door $GRADLE_USER_HOME/.gradle/gradle.properties
( ~/.gradle/gradle.properties
) standaard te ~/.gradle/gradle.properties
en org.gradle.jvmargs
.
Als u deze limieten alleen voor een specifiek project wilt configureren, bewerkt u in plaats daarvan het bestand gradle.properties
dat project.
De standaardinstellingen voor geheugengebruik voor Gradle-builds en de Gradle Daemon zijn:
org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=256m
Dit maakt een algemene maximale geheugentoewijzing (heap-grootte) van 1 GB mogelijk en een maximale geheugentoewijzing voor permanente "interne" objecten van 256 MB. Wanneer deze formaten worden bereikt, vindt Garbage Collection plaats, wat de prestaties aanzienlijk kan verminderen.
Ervan uitgaande dat u nog geheugen hebt, kunt u deze eenvoudig als volgt verdubbelen:
org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m
Merk op dat je geen voordeel meer zult hebben van het verhogen van XX:MaxPermSize
sneller dan wanneer Xmx
verhoogt, wordt het stoppen met heilzaam worden.
Gebruik de Gradle Daemon
Je kunt de Gradle Daemon inschakelen om de prestaties van je builds te verbeteren.
De Gradle Daemon houdt het Gradle Framework geïnitialiseerd en actief en slaat projectgegevens in het geheugen op om de prestaties te verbeteren.
Voor een enkele build
Om de Daemon voor een enkele build in te schakelen, kunt u eenvoudig het argument --daemon
doorgeven aan uw gradle
opdracht of Gradle Wrapper-script.
gradle --daemon
./gradlew --daemon
Voor alle builds van een project
Om de Daemon in te schakelen voor alle builds van een project, kunt u toevoegen:
org.gradle.daemon=true
Naar het bestand gradle.properties
uw project.
For All Builds
Als u de Gradle Daemon standaard wilt inschakelen, bewerkt u voor elke build die door uw gebruikersaccount op uw systeem wordt gemaakt $GRADLE_USER_HOME/.gradle/gradle.properties
( ~/.gradle/gradle.properties
standaard) en voegt u deze regel toe:
org.gradle.daemon=true
U kunt dit ook doen met een enkele opdracht op Mac / Linux / * nix-systemen:
touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties
Of op Windows:
(if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo org.gradle.daemon=true >> "%USERPROFILE%/.gradle/gradle.properties")
De Daemon uitschakelen
U kunt de Daemon uitschakelen voor een specifieke build met het argument --no-daemon
, of uitschakelen voor een specifiek project door org.gradle.daemon=false
in het bestand gradle.properties
het project gradle.properties
te stellen.
De Daemon stoppen
Als u een Daemon-proces handmatig wilt stoppen, kunt u het proces gradle --stop
via uw taakbeheer van het besturingssysteem of de opdracht gradle --stop
uitvoeren. De --stop
schakelaar zorgt ervoor dat --stop
verzoekt dat alle actieve Daemon-processen, van dezelfde Gradle-versie die worden gebruikt om de opdracht uit te voeren, zichzelf beëindigen. Gewoonlijk zullen Daemon-processen zichzelf automatisch beëindigen * na * 3 uur inactiviteit of minder .
Gradle Parallel builds
Gradle voert standaard slechts één taak tegelijk uit, ongeacht de projectstructuur. Door de - --parallel
schakelaar te gebruiken, kunt u --parallel
dwingen om onafhankelijke subprojecten - die geen impliciete of expliciete projectafhankelijkheid tussen elkaar hebben - parallel uit te voeren, waardoor het meerdere taken tegelijkertijd kan uitvoeren zolang deze taken zich in verschillende projecten.
Een project in parallelle modus bouwen:
gradle build --parallel
U kunt ook parallel bouwen de standaardinstelling voor een project maken door de volgende instelling toe te voegen aan het bestand gradle.properties van het project:
org.gradle.parallel=true
Gebruik de nieuwste Gradle-versie
Het Gradle-team werkt regelmatig aan het verbeteren van de prestaties van verschillende aspecten van Gradle-builds. Als je een oude versie van Gradle gebruikt, mis je de voordelen van dat werk. Probeer te upgraden naar de nieuwste versie van Gradle om te zien wat voor impact het heeft. Dit is een laag risico omdat er maar weinig dingen kapot gaan tussen kleinere versies van Gradle.
Het eigenschappenbestand voor de Gradle-wrapper is te vinden in uw projectmap onder gradle/wrapper/
en wordt gradle-wrapper.properties
. De inhoud van dat bestand kan er als volgt uitzien:
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
U kunt het versienummer XXX
(huidige versie) handmatig wijzigen in YYY
(nieuwere versie) en de volgende keer dat u de wrapper uitvoert, wordt de nieuwe versie automatisch gedownload.