Android Studio richiede troppa memoria


175

Avevo installato Android Studio 1.0 RC 2. Ho installato 4 GB di RAM, ma dopo aver avviato Android Studio e avviato Android Emulator, oltre il 90% della memoria fisica è stato utilizzato solo da questi due. C'è un modo per ridurre questo utilizzo della memoria? A causa di questo problema di memoria, non riesco ad aprire altre applicazioni contemporaneamente. inserisci qui la descrizione dell'immagine


17
L'uso di Eclipse o Android Studio e un emulatore su una macchina per lo sviluppo di Windows da 4 GB sarà molto doloroso. Consiglio vivamente di aggiornare la RAM della macchina di sviluppo (8 GB o più), testare su un dispositivo (anziché un emulatore) o saltare l'IDE e fare il tuo sviluppo usando un semplice editor e strumenti da riga di comando.
CommonsWare il

2
Immagino che stai usando Windows a giudicare dallo screenshot che hai pubblicato. Ma quale versione di Windows? Inoltre, poiché Android Studio è ancora agli inizi, avrai molti problemi con esso. Se non hai bisogno del supporto Gradle, puoi sempre provare Eclipse - l'IDE è stato provato e testato nel corso degli anni, quindi è abbastanza solido per un ambiente di sviluppo - per quanto riguarda la RAM.
ChuongPham,

1
@CommonsWare Sai se lo stesso vale per PC Linux? Grazie in anticipo.
Alexander Kulyakhtin,

4
@PPD: in Windows, disattivare i servizi non necessari tramite Strumenti di amministrazione | Opzione servizi . Vai a msconfige disattiva le applicazioni non necessarie nella scheda Avvio . Disattiva gli effetti visivi non necessari in Windows. Quando esegui un emulatore Android, attiva l' opzione Usa GPU host in particolare se hai una scheda grafica potente. Ho un PC di sviluppo Windows 7 e utilizzo solo 2-2,5 GB di RAM in qualsiasi momento che include: Windows 7, Eclipse, Mozilla Firefox (senza componenti aggiuntivi) e i passaggi di personalizzazione di Windows che ho appena menzionato. Uso anche Fedora e utilizza ancora meno memoria di Windows.
ChuongPham,

3
Solo un'osservazione: posso vedere che hai alcune schede di Google Chrome aperte. Si potrebbe scoprire che Firefox utilizza un po 'meno di RAM in quanto non fa uso di un processo per ogni scheda del browser.
Sam,

Risposte:


224

Attualmente sto eseguendo Android Studio su Windows 8.1 con 6 concerti di RAM.

Ho scoperto che disabilitare VCS in Android Studio e usare un programma esterno per gestire VCS ha aiutato molto. Puoi disabilitare VCS andando su File -> Impostazioni -> Plugin e disabilitare quanto segue:

  • Integrazione CVS
  • Integrazione Git
  • GitHub
  • Google Cloud Testing
  • Google Cloud Tools Core
  • Google Cloud Tools per Android Studio
  • hg4idea
  • Integrazione Subversion
  • Integrazione mercuriale
  • TestNG-J

18
nah, piccolo cambiamento.
Krivar,

5
Enorme differenza quando il progetto è configurato con qualsiasi repository come svn o github. il tempo di attesa della mia esecuzione è stato ridotto da> 3min a <1min. Grazie mille per l'aiuto straordinario.
Er. Kaushik Kajavadara,

4
Questo sembra funzionare e fa una grande differenza, anche se ho mantenuto 'Git Integration' attivata. Idealmente Android Studio dovrebbe avere queste come impostazioni predefinite.
Mr-IDE,

3
Ho usato questo metodo per la custodia mini HP 6005 con ram da 4 GB e amd X4 Cpu. dopo aver disattivato tutti questi plugin, il mio studio Android si è aperto molto velocemente e non ci credo. prima di avviare lo studio Android prenditi un 15 secondi, ma ora arriva in 1 secondo. grazie
AN

2
Disabilitare anche Mercurial Integration, TestNG-J;
xiaoweiz,

108

Nel mio caso, c'erano due principali fonti di hogging della memoria: l'IDE e Gradle:

Android Studio (fino a 1,5 GB)

La JVM dell'IDE è configurata per avere una dimensione heap massima. Puoi vederlo nell'angolo in basso a destra dell'interfaccia principale:

Android Studio mostra una dimensione heap massima di 725 M

È possibile ridurre questo modificando le impostazioni relative alla memoria nel il .vmoptionsfile di . Ad esempio, ho modificato la dimensione massima dell'heap in 512 MB:

-Xmx512m

Sfortunatamente, ho scoperto che la riduzione di questo valore aumenta la frequenza del blocco temporaneo di Android Studio, forse per fare la sua garbage collection.

Grado (fino a 1,5 GB)

Gradle può anche usare molta RAM dopo averlo sviluppato per un po '. Windows lo mostra solo come Java(TM) Platform SE Binary:

Task Manager di Windows 8.1 che mostra "Java (TM Platform SE binary" utilizzando 1.460,5 MB di memoria

È possibile risolvere questo problema modificando le opzioni Gradle JVM. Puoi farlo per utente modificando gradle.properties:

  1. Apri il gradle.propertiesfile, creandolo se non esiste:
    • Finestre: %USERPROFILE%\.gradle\gradle.properties
    • Linux / Mac: ~/.gradle/gradle.properties
  2. Aggiorna la org.gradle.jvmargsproprietà, creandola se necessario. Ho impostato il mio su questo:

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

Non ho notato alcuna differenza nelle prestazioni di compilazione per il mio piccolo progetto con la dimensione heap massima impostata su 256 MB ( -Xmx256m).

Tieni presente che potrebbe essere necessario riavviare Android Studio per terminare il vecchio processo Gradle; altrimenti potresti finire con entrambi in esecuzione contemporaneamente.

Emulatore

Per quanto riguarda l'emulatore che occupa molta RAM, lo screenshot mostra che richiede circa 800 MB. Puoi scegliere la quantità di RAM da allocare all'emulatore:

  1. Modifica l'AVD
  2. Premi Mostra impostazioni avanzate
  3. Ridurre il valore della RAM

Configurazione RAM dispositivo virtuale Android


Questo in combinazione con la risposta di SoJexy ha aumentato notevolmente le prestazioni sul mio computer.
Josh Larson,

Questi consigli ti hanno salvato la vita! C'è anche un'opzione per cambiare la dimensione dell'heap usata dal compilatore dex che riduce ulteriormente l'uso della memoria. Dettagli: techzog.com/development/android-studio-high-ram-usage
Varun

1
Nel .vmoptionsfile dice: *DO NOT* modify this file directly. If there is a value that you would like t$ please add it to your user specific configuration file. See http://tools.android.com/tech-docs/configurationTuttavia, poiché non sembra esserci un file specifico dell'utente sul mio sistema e il sito Web non spiega altre posizioni di tale file, andrò con questa soluzione. Oh e: MaxPermSize sarà deprecato ad un certo punto. Mi avvisa sempre di ciò quando si avviano gli IDE nel terminale.
Zelphir Kaltstahl,

1
@Zelphir, quale sistema operativo e versione di Android Studio stai usando? Sto usando Windows e le istruzioni dicono che il file è sotto %USERPROFILE%, che è specifico dell'utente. Non sono molto bravo con Linux, ma le istruzioni per Mac e Linux dicono anche che il file è sotto ~, che immagino sia la home directory dell'utente? Se il file non è presente, forse puoi semplicemente crearlo; la documentazione di cui sopra dice Instead, you can customize the attributes by creating your own .properties or .vmoptions files in the following directories.. Potresti farmi sapere se funziona in modo da poter aggiornare la risposta?
Sam,

3
Suggerimenti fantastici! Per Gradle, ho risolto il problema in modo "a livello di utente" modificando ~/.gradle/gradle.properties.
Andrea Lazzarotto,

51

Puoi velocizzare il tuo lavoro con Eclipse o Android Studio, basta seguire questi:

  • Utilizzare / aprire un singolo progetto alla volta
  • ripulisci il progetto dopo aver eseguito l'app in emulatore ogni volta
  • usa un dispositivo mobile / esterno invece dell'emulatore
  • non chiudere l'emulatore dopo averlo usato una volta, usa lo stesso emulatore per eseguire l'app ogni volta
  • Disabilita VCS usando File-> Impostazioni-> Plugin e disabilita le seguenti cose:
    1.CVS Integration
    2.Git Integration
    3.GitHub
    4.Google Cloud Tools per Android Studio
    5.Subversion Integration

Sto anche usando Android Studio con memoria principale installata da 4 GB, ma seguire queste affermazioni migliora davvero le prestazioni di Android Studio.


1
Ho disabilitato tutte le cose nell'elenco. Tuttavia usa lo stesso intorno a 1,5 GB di RAM
Arshad

@ arshadkazmi42 dimmi la configurazione del tuo PC
KulArtist

i3, 4 GB di RAM, HDD da 500 GB
Arshad

13
Penso che questa sia una totale assurdità nel dire che "i3" è la causa dei fallimenti nell'arte del software!
XMight

1
Il mio processore i3 vuole sfidare il tuo> i3, vuoi accettare questa sfida? Nessuno dirà che i3 sta causando rallentamenti o prendendo memoria alta ...
Sabir Hossain

28

Android Studio ha recentemente pubblicato una guida ufficiale per macchine a memoria insufficiente: Guida

Se stai eseguendo Android Studio su un computer con meno delle specifiche consigliate (vedi Requisiti di sistema), puoi personalizzare l'IDE per migliorare le prestazioni sul tuo computer, come segue:

  • Riduci la dimensione heap massima disponibile per Android Studio : riduci la dimensione heap massima per Android Studio a 512 Mb.

  • Aggiorna Gradle e il plug-in Android per Gradle : aggiorna alle ultime versioni di Gradle e il plug-in Android per Gradle per assicurarti di sfruttare gli ultimi miglioramenti delle prestazioni.

  • Abilita modalità di risparmio energetico : l'attivazione della modalità di risparmio energetico disattiva una serie di operazioni in background ad alta intensità di memoria e batteria, tra cui l'evidenziazione degli errori e le ispezioni al volo, il completamento del codice di autopopup e la compilazione automatica in background incrementale. Per attivare la Modalità risparmio energia, fare clic su File> Modalità risparmio energia.

  • Disabilita i controlli inutili di lanugine : per modificare il controllo di lanugine che Android Studio esegue sul tuo codice, procedi come segue: Fai clic su File> Impostazioni (su Mac, Android Studio> Preferenze) per aprire la finestra di dialogo Impostazioni. Nel riquadro sinistro, espandi la sezione Editor e fai clic su Ispezioni. Fare clic sulle caselle di controllo per selezionare o deselezionare i controlli lanugine appropriati per il progetto. Fai clic su Applica o OK per salvare le modifiche.

  • Debug su un dispositivo fisico : il debug su un emulatore utilizza più memoria rispetto al debug su un dispositivo fisico, quindi puoi migliorare le prestazioni generali per Android Studio eseguendo il debug su un dispositivo fisico.

  • Includi solo i servizi Google Play necessari come dipendenze : l'inclusione dei servizi Google Play come dipendenze nel tuo progetto aumenta la quantità di memoria necessaria. Includere solo le dipendenze necessarie per migliorare l'utilizzo e le prestazioni della memoria. Per ulteriori informazioni, consulta Aggiungi servizi Google Play al tuo progetto.

  • Ridurre la dimensione heap massima disponibile per la compilazione dei file DEX : impostare javaMaxHeapSize per la compilazione dei file DEX su 200m. Per ulteriori informazioni, consultare Migliorare i tempi di compilazione configurando le risorse DEX .

  • Non abilitare la compilazione parallela : Android Studio può compilare moduli indipendenti in parallelo, ma se si dispone di un sistema a memoria insufficiente non è necessario attivare questa funzione. Per verificare questa impostazione, procedere come segue: Fare clic su File> Impostazioni (su Mac, Android Studio> Preferenze) per aprire la finestra di dialogo Impostazioni. Nel riquadro sinistro, espandere Build, Execution, Deployment e quindi fare clic su Compiler. Assicurati che l'opzione Compila moduli indipendenti in parallelo sia deselezionata. Se hai apportato una modifica, fai clic su Applica o OK per rendere effettiva la modifica.

  • Attiva la modalità offline per Gradle : se hai un limitatore di banda limitato, attiva la modalità offline per impedire a Gradle di tentare di scaricare dipendenze mancanti durante la compilazione. Quando la modalità offline è attiva, Gradle genererà un errore di compilazione se non si dispone di dipendenze, invece di tentare di scaricarle. Per attivare la modalità offline, procedere come segue:

    • Fai clic su File> Impostazioni (su Mac, Android Studio> Preferenze) per aprire la finestra di dialogo Impostazioni.

    • Nel riquadro sinistro, espandere Build, Execution, Deployment e quindi fare clic su Gradle.

    • In Impostazioni Global Gradle, seleziona la casella di controllo Lavoro offline.

    • Fare clic su Applica o OK per rendere effettive le modifiche.


16

Ho usato tutti i consigli di Sam sopra, ma ho scoperto che le opzioni della riga di comando della VM non sono più supportate come descritto. (Ho ricevuto un errore quando utilizzato)

In alternativa, sono stato in grado di ridurre drasticamente il gradle aggiungendo la seguente riga al file "gradle.properties"

org.gradle.jvmargs=-Xms512m -Xmx1024m

A partire da AS ver 1.3, il file si trova nello stesso livello di cartella di "gradle.build".

La configurazione sopra è uno "stack di memoria" di 512 mega e "memoria heap" di 1024 meg.

Ho provato questo su un piccolo progetto, usando impostazioni in cui entrambe le dimensioni della memoria erano impostate su 256 meg. Ha limitato le dimensioni della JVM come previsto. In tutti i miei test, ho riavviato AS per forzare il riavvio di JVM.

Speriamo che questo salverà gli altri che si occupano di questo problema dall'ottenere risposte "Procurati un computer migliore". :-)

Dilber


Grazie; questo ha funzionato per me in AS 1.3! Ho aggiornato le istruzioni nella mia risposta per coprire questo metodo poiché non ho trovato altri modi per farlo in AS 1.3.
Sam,

2

Ho Android Studio 2.1.1 Bro usa l'emulatore genymotion più veloce se usi Android Marshmallow. E My Ram Is 4gb. E installa Plugin per genymotion in Android Studio. Vedrai un buon risultato invece di perdere tempo a avviare Android Emualtor ci vorranno 5 min. Genymotion da 10 a 20 secondi di velocità e più veloce, quindi ti consiglio di usare Genymotion.


3
Come se fosse gratis.
Ojonugwa Jude Ochalifu,

Genymotion non è più veloce nelle prestazioni. L'emulatore è, ma sì, inizia più velocemente di ARM e molto più velocemente degli emulatori di studio Android IntelX86 e X64.
Mahdi-Malv,

2

Per ridurre il ritardo, consiglierei i seguenti passaggi

specifiche del mio pc: 2 GB di RAM, processore: Intel Core2 Duo

prima di tutto uccidi tutto il processo in background, se hai server o database in esecuzione potresti fermarli prima con i seguenti comandi

sudo service apache2 stop

sudo service mysql stop

Quindi abilitare la modalità di risparmio energetico in Android Studio per file> modalità di risparmio energetico

Potrebbe disabilitare il processo in background, e quindi studio sembra andare bene


Non capisco perché dobbiamo abilitarePower Save Mode
Morozov,

Morozov, se abilitiamo la modalità di risparmio energetico uccide le attività in background di Android Studio, quindi migliorerà le sue prestazioni
Naveen

sì, la modalità di risparmio energetico interrompe questo processo
Naveen,

2

Per eseguire l'ambiente Android su macchine con configurazione bassa.

  1. Chiudere le schede Web non soggette a browser nel browser
  2. Per gli utenti antivirus, escludere la cartella di generazione generata automaticamente
  3. Android Studio ha un heap predefinito di 1,2 Gb che può scendere a 512 MB

Aiuto> Modifica opzioni VM personalizzate

studio.vmoptions
 -Xmx512m

Le prestazioni dei layout saranno accelerate

  1. Per Gradle uno dei componenti principali dello studio Android Mkae sicuramente come al momento 3.0beta è l'ultimo

I suggerimenti di seguito possono influire sulla qualità del codice, quindi utilizzare con cautela:

  1. Studio contiene la modalità Risparmio energetico quando viene attivata per chiudere le operazioni in background che sfilacciano, compilano il codice e così via.

  2. È possibile eseguire manualmente il controllo lanugine quando necessario ./gradlew lint

  3. La maggior parte utilizza emulatori Android in media consuma 2 GB di RAM, quindi, se possibile, utilizza un dispositivo Android reale che ridurrà il carico di risorse sul tuo computer. In alternativa puoi ridurre la RAM dell'emulatore e questo ridurrà automaticamente il consumo di memoria virtuale sul tuo computer. puoi trovarlo nella configurazione del dispositivo virtuale e nelle impostazioni avanzate.

  4. La modalità offline Gradle è una funzione per gli utenti con limitazioni di larghezza di banda per disabilitare il download delle dipendenze di compilazione. Ridurrà le operazioni in background che aiuteranno ad aumentare le prestazioni di Android Studio.

  5. Android Studio offre un'ottimizzazione per compilare più moduli in parallelo. Su macchine con poca RAM questa funzione avrà probabilmente un impatto negativo sulle prestazioni. Puoi disabilitarlo nella finestra di dialogo delle impostazioni del compilatore .


"studio.vmoptions -Xmx512m" ha ucciso Android Studio per me. Non si aprirà più "Impossibile creare JVM: codice errore -1". Come posso annullare questa modifica?
MeatPopsicle,

1
Nel caso in cui qualcun altro cada nella stessa trappola. Puoi risolverlo andando su C: \ Users \ <nomeutente> \ .AndroidStudio <versione> \ config e cercando un file .vmoptions. Se corrisponde alla configurazione che hai appena aggiunto, probabilmente sei sicuro di eliminarlo
MeatPopsicle


1

Prova a cambiare la tua JVM in eclissi openj9. Userà molta meno memoria. L'ho scambiato e il suo utilizzo costante di 600 Mb.


1

Non so se sia una soluzione, ma Invalidate Cache and Restartho risolto questo problema nel mio caso. Attualmente sto usando Android Studio 3.6


0

Apri sotto il percorso di menzione sul tuo sistema ed elimina tutti i tuoi avd (Dispositivi virtuali: emulatore)

C: \ Users {} Nome utente .android \ avd

Nota: - L'eliminazione dell'emulatore solo da Android Studio non eliminerà tutti gli spazi catturati dai loro avd. Quindi eliminare tutti gli avd dal percorso sopra indicato e quindi creare un nuovo emulatore, se necessario.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.