2016-04-06 16 views
25

Sto usando Gradle 2.0.0 con Android Studio e un progetto vuoto richiede 2 minuti per essere compilato. Crea anche un utilizzo della CPU del 100% in Windows 8.1.Perché il gradle 2.0 è così lento?

Molto fastidioso. Ancora più fastidioso del fatto che un progetto adeguato può richiedere fino a 4-5 minuti per la creazione e rallenta tutto.

Cosa potrebbe causare questo?

+0

stesso qui .. Mi sono sempre sentito "Non avrei dovuto aggiornarlo" – Sheychan

+0

@breakline condividi gentilmente la configurazione del tuo computer –

risposta

21

Hanno lo stesso problema dal 2.0.0-rc3. E a volte dopo una lunga compilazione (circa 10 minuti) ottenendo l'errore gc overhead limit exceeded.

UPD: Inoltre utilizza circa 6 GB di spazio su disco su SSD.

avere la configurazione successiva:

in app build.gradle:

dexOptions { 
     javaMaxHeapSize "4g" 
    } 

in gradle-wrapper.properties:

org.gradle.configureondemand=true 
org.gradle.daemon=true 
org.gradle.parallel=true 

UPD 2: Credo di aver trovato la soluzione temporanea - I Ho spento Instant Run e aggiunto le seguenti configurazioni:

nel gradle.properties:

org.gradle.jvmargs=-Xms512m -Xmx2048m 
org.gradle.daemon=true 
org.gradle.parallel=true 

nel build.gradle:

dexOptions { 
     incremental true 
     javaMaxHeapSize "4g" 
    } 

nel studio.vmoptions:

-server 
-Xms1G 
-Xmx2G 
-XX:MaxPermSize=450m 
-XX:MetaspaceSize=512m 

Potete trovare studio.vmoptions in:

Mac OS:

~/Library/Preferences/{FOLDER_NAME}/

Linux:

~/.{FOLDER_NAME}/studio.vmoptions and/or ~/.{FOLDER_NAME}/studio64.vmoptions

di Windows:

%USERPROFILE%\.{FOLDER_NAME}\studio.exe.vmoptions and/or %USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptions

UPD 3: Penso, ho trovato perché Android Studio utilizza così tanto spazio su disco.

Dopo ogni errore gc overhead limit exceeded, Android Studio crea un file java_pid<proccess_id_number_here>.hprof nella cartella principale del progetto.

Ha dimensioni circa 1.2 Gb, molti degli errori gc overhead limit exceeded-> un sacco di quei file. Puoi semplicemente cancellarli.

UPD 4: costruisce è diventato molto più veloce, dopo l'aggiornamento a Studio versione Android 2.1 e l'aggiunta di proprietà maxProcessCount nel dexOptions

dexOptions { 
     incremental true 
     maxProcessCount 4 
     javaMaxHeapSize "5g" 
    } 

Inoltre, ho aumentato la dimensione heap massima per la Gradle nel gradle.properties:

org.gradle.jvmargs=-Xmx5120M 
org.gradle.daemon=true 
org.gradle.parallel=true 

E sto ancora utilizzando modificato studio.vmoptions di file, come ho descritto sopra.

+0

Grande differenza ... Grazie. – Dani

+0

Rilevato anche che gradle genera 4-5 JVM separate quando si imposta parallell = true. è quel cattivo design o c'è una ragione dietro di esso? Molto strano ancora. – breakline

+0

L'abilitazione di build parallele con org.gradle.parallel è utile solo se il progetto ha più moduli. Ad esempio, potresti avere un'app per Android, una libreria Java, una libreria di progetti Android e un modulo Android Wear nello stesso progetto. Quando si abilitano le build parallele, alcuni dei moduli possono essere creati contemporaneamente, facendo uso di tutti i core della macchina. Link: http://kevinpelgrims.com/blog/2015/06/11/speeding-up-your-gradle-builds/ – c0nst

0

Nella cartella .gradle creare un file denominato gradle.properties e aggiungere di seguito le linee in questo file e riavviare il vostro studio una volta:

org.gradle.daemon = true

org.gradle.jvmargs = - Xmx2048m -XX: MaxPermSize = 512m -XX: + HeapDumpOnOutOfMemoryError -Dfile.encoding = UTF-8

org.gradle.parallel = true

org.gradle.configureondemand = true

Problemi correlati