Ricerca…


Creazione di profili di una build

Prima di iniziare a sintonizzare la build di Gradle per le prestazioni, dovresti stabilire una linea di base e capire quali parti della build impiegano più tempo. Per fare ciò, puoi profilare la tua build aggiungendo l'argomento --profile al comando Gradle:

gradle --profile
./gradlew --profile

Al termine della compilazione, verrà visualizzato un report del profilo HTML per la compilazione in ./build/reports/profile/ , con un aspetto simile al seguente:

Esempio di rapporto profilo HTML

Facendo clic sulle schede accanto a Riepilogo , è possibile visualizzare una ripartizione più dettagliata di dove viene speso il tempo.

Configura su richiesta

Se la creazione di profili della build mostra un notevole dispendio di tempo in Configurazione progetti , l'opzione Configura su richiesta potrebbe migliorare le prestazioni.

È possibile abilitare la modalità Configura su richiesta modificando $GRADLE_USER_HOME/.gradle/gradle.properties ( ~/.gradle/gradle.properties per impostazione predefinita) e impostando org.gradle.configureondemand .

org.gradle.configureondemand=true

Per abilitarlo solo per un progetto specifico, modifica invece il file gradle.properties quel progetto.

Se Configura su richiesta è abilitato, anziché configurare tutti i progetti in primo piano, Gradle configurerà solo i progetti necessari per l'attività da eseguire.

Dal manuale di Gralde :

La modalità di configurazione on demand tenta di configurare solo i progetti rilevanti per le attività richieste, ovvero esegue solo il file build.gradle dei progetti che partecipano alla generazione. In questo modo, è possibile ridurre il tempo di configurazione di una grande build multi-progetto. A lungo termine, questa modalità diventerà la modalità predefinita, probabilmente l'unica modalità per l'esecuzione di build di Gradle.

Ottimizzazione dei parametri di utilizzo della memoria JVM per Gradle

È possibile impostare o aumentare i limiti di utilizzo della memoria (o altri argomenti JVM) usati per le build Gradle e il demone Gradle modificando $GRADLE_USER_HOME/.gradle/gradle.properties ( ~/.gradle/gradle.properties per impostazione predefinita) e impostando org.gradle.jvmargs .

Per configurare questi limiti solo per un progetto specifico, modifica invece il file gradle.properties quel progetto.

Le impostazioni di utilizzo della memoria predefinite per build Gradle e Demone Gradle sono:

org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=256m

Ciò consente un'allocazione di memoria massima generale (dimensione heap) di 1 GB e un'allocazione di memoria massima per oggetti "interni" permanenti di 256 MB. Quando vengono raggiunte queste dimensioni, si verifica Garbage Collection, che può ridurre significativamente le prestazioni.

Supponendo che tu abbia la memoria di riserva, potresti facilmente raddoppiarli in questo modo:

org.gradle.jvmargs=-Xmx2024m -XX:MaxPermSize=512m

Nota che smetterai di vedere i benefici derivanti dall'aumento di XX:MaxPermSize prima di quando Xmx aumenta e diventa Xmx .

Usa il demone Gradle

Puoi abilitare il demone Gradle per migliorare le prestazioni delle tue build.

Il demone Gradle mantiene il Gradle Framework inizializzato e funzionante, e memorizza nella cache i dati del progetto in memoria per migliorare le prestazioni.

Per una singola costruzione

Per abilitare il demone per una singola build, è sufficiente passare l'argomento --daemon al comando gradle o allo script Gradle Wrapper.

gradle --daemon
./gradlew --daemon

Per tutte le build di un progetto

Per abilitare il demone per tutte le build di un progetto, puoi aggiungere:

org.gradle.daemon=true

Al file gradle.properties del progetto.

For All Builds

Per abilitare il demone Gradle per impostazione predefinita, per ogni build creata dal tuo account utente sul tuo sistema, modifica $GRADLE_USER_HOME/.gradle/gradle.properties ( ~/.gradle/gradle.properties per impostazione predefinita) e aggiungi questa riga:

org.gradle.daemon=true

Puoi anche farlo in un singolo comando su sistemi Mac / Linux / * nix:

touch ~/.gradle/gradle.properties && echo "org.gradle.daemon=true" >> ~/.gradle/gradle.properties

Oppure su Windows:

(if not exist "%USERPROFILE%/.gradle" mkdir "%USERPROFILE%/.gradle") && (echo org.gradle.daemon=true >> "%USERPROFILE%/.gradle/gradle.properties")

Disabilitare il demone

È possibile disabilitare il daemon per una build specifica utilizzando l'argomento --no-daemon o disattivarlo per un progetto specifico impostando esplicitamente org.gradle.daemon=false nel file gradle.properties del progetto.

Fermare il demone

Se si desidera interrompere manualmente un processo Daemon, è possibile interrompere il processo tramite il task manager del sistema operativo o eseguire il comando gradle --stop . L' --stop fa in modo che Gradle richieda che tutti i processi di Daemon in esecuzione, della stessa versione di Gradle utilizzata per eseguire il comando, si interrompano. Normalmente, i processi demone terminano automaticamente * dopo * 3 ore di inattività o meno .

Gradle Parallel costruisce

Gradle eseguirà solo un'attività alla volta per impostazione predefinita, indipendentemente dalla struttura del progetto. Usando l' --parallel , puoi forzare Gradle ad eseguire sottoprogetti indipendenti - quelli che non hanno dipendenze tra progetti implicite o esplicite tra di loro - in parallelo, permettendogli di eseguire più attività contemporaneamente fintantoché quelle attività sono in diversi progetti.

Per costruire un progetto in modalità parallela:

gradle build --parallel

È anche possibile creare in parallelo l'impostazione predefinita per un progetto aggiungendo la seguente impostazione al file gradle.properties del progetto:

org.gradle.parallel=true

Usa l'ultima versione di Gradle

Il team di Gradle lavora regolarmente per migliorare le prestazioni dei diversi aspetti delle build di Gradle. Se stai usando una vecchia versione di Gradle, stai perdendo i benefici di quel lavoro. Prova ad aggiornare all'ultima versione di Gradle per vedere che tipo di impatto ha. Fare così è a basso rischio perché pochissime cose si interrompono tra versioni minori di Gradle.

Il file delle proprietà per il wrapper Gradle può essere trovato nella cartella del progetto sotto gradle/wrapper/ e si chiama gradle-wrapper.properties . Il contenuto di quel file potrebbe assomigliare a questo:

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

È possibile modificare manualmente il numero di versione XXX (versione corrente) su YYY (versione più recente) e la volta successiva che si esegue il wrapper, la nuova versione viene scaricata automaticamente.



Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow