Android Studio - Come aumentare la dimensione dell'heap allocato


118

Uso Android Studio da 3 mesi e una delle app su cui ho iniziato è diventata abbastanza grande. L'utilizzo della memoria indicato in basso a destra nel programma dice che il mio heap allocato è al massimo a 494M.

inserisci qui la descrizione dell'immagine

Quando inizio a modificare i file XML, il mio utilizzo della memoria raggiunge rapidamente quel limite e l'IDE si blocca con un errore di memoria insufficiente come questo.

inserisci qui la descrizione dell'immagine

Ho provato ad aumentare la dimensione dell'heap usando questo ma finora non c'è stato alcun effetto.

Ho esaminato dozzine di articoli e altre domande su come aumentare la dimensione dell'heap ma nessuna delle loro risposte funziona. Indipendentemente da ciò che faccio alle VMOPTIONS o alle impostazioni IDE, la dimensione dell'heap non aumenta mai. Credo di stare modificando il file corretto per VMOPTIONS perché se gli do di proposito un comando non valido, Android Studio si lamenta e non si avvia.

Sto usando Windows 7 - 64 bit e ho 16 GB di RAM. Qualcun altro ha avuto questo problema con Android Studio? E sei riuscito a risolverlo?


Vedere la risposta di @ moxi di seguito per le informazioni più aggiornate sulla configurazione delle impostazioni specifiche dell'utente per la memoria e l'avvio di JVM dello studio stackoverflow.com/a/29057416/396005
Bron Davies

1
Documentazione aggiornata di Android Studio: developer.android.com/studio/intro/…
Morrison Chang,

Risposte:


136

-------MODIFICARE--------

Android Studio 2.0 e versioni successive, puoi creare / modificare questo file accedendo a "Modifica opzioni VM personalizzate" dal menu Guida.

------- RISPOSTA ORIGINALE --------

Apri il file che si trova in

/Applications/Android\ Studio.app/Contents/bin/studio.vmoptions

Cambia il contenuto in

-Xms128m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops

Xmxspecifica il pool di allocazione di memoria massimo per una JVM (Java Virtual Machine), mentre Xmsspecifica il pool di allocazione di memoria iniziale. La tua JVM verrà avviata con una Xmsquantità di memoria e sarà in grado di utilizzare un massimo diXmx quantità di memoria.

Salva il studio.vmoptions file e riavvia Android Studio.

Altro in questo post .

Nota:

Se hai modificato la dimensione dell'heap per l'IDE, devi riavviare Android Studio prima di applicare le nuove impostazioni di memoria. ( fonte )


Questo ha risolto un problema per me su un progetto molto grande in cui Android Studio avrebbe esaurito la memoria dopo 15 minuti durante la costruzione della mappa dei simboli. Ho cambiato Xms in 1024m e Xmx in 4096 e la mappa dei simboli è stata costruita in meno di 30 secondi, quindi il garbage collector deve aver battuto per molto tempo.
RikMaxSpeed

10
Come notato da Lord Flash: a partire da Android Studio 2.0, puoi creare / modificare questo file accedendo a "Modifica opzioni VM personalizzate" dal menu Guida.
Lasse Magnussen

Grazie, è molto utile. Cordiali saluti, se usi la versione a 64 bit, il file da modificare si chiama studio64.exe.vmoptions.
Eselfar

50

Ho esaminato le mie variabili di ambiente e ho avuto una variabile di sistema chiamata _JAVA_OPTIONScon il valore -Xms256m -Xmx512m, dopo averlo modificato -Xms256m -Xmx1024mnella dimensione massima dell'heap aumentata di conseguenza.


9
Non esisteva alcuna variabile di sistema denominata _JAVA_OPTIONS. ma ne ho creato uno nuovo manualmente e funziona bene. thanx.
Yasir Ali,

Bene, funziona! Mi chiedo se aumentare la dimensione dell'heap sia una buona cosa ... Voglio dire, funziona e sicuramente in alcuni casi è la strada giusta, ma è sempre la strada giusta? O potrebbero esserci soluzioni migliori? Grazie!
Marino

è questo problema anche a causa della dimensione heap stackoverflow.com/questions/29148374/...
Sagar Devanga

Non ha funzionato neanche per me, ma si è scoperto che Android Studio aveva lasciato che alcuni processi Java rimanessero sospesi da precedenti esecuzioni, e ovviamente stavano ancora utilizzando molta memoria.
alex.magellan

48

Oppure puoi andare alla tua android-studio\bincartella e modificare questi valori -Xmx e -Xms in studio.exe.vmoptionso studio64.exe.vmoptionsfile (a seconda della versione in esecuzione).


2
Questo non ha funzionato per me perché la variabile _JAVA_OPTIONS veniva utilizzata come valore predefinito.
zafrani

Modificate entrambe le opzioni (vmoptions e _JAVA_OPTIONS) ma ho ancora l'errore
Raphael Royer-Rivard

Se si immette di proposito un errore di sintassi in vmoptions, il programma si blocca quando lo si riavvia?
zafrani

Non ne sono sicuro, ma non credo che dovrebbe. Inoltre, posso chiederti perché dovresti inserire di proposito un errore di sintassi in vmoptions?
croc


32

Ho aumentato la mia memoria seguendo la prossima documentazione di Google:

http://tools.android.com/tech-docs/configuration

Per impostazione predefinita, ad Android Studio viene assegnato un massimo di 750 Mb, io sono passato a 2048 Mb.

Ho provato quello che Google ha descritto, ma per me l'unica cosa che ha funzionato è stata quella di utilizzare una variabile d'ambiente. Descriverò cosa ho fatto:

Per prima cosa ho creato una directory che ho chiamato .AndroidStudioSettings,

  • mkdir .AndroidStudioSettings

Quindi ho creato un file chiamato studio.vmoptions e ho inserito in quel file il seguente contenuto:

-Xms256m 
-Xmx2048m 
-XX:MaxPermSize=512m 
-XX:ReservedCodeCacheSize=128m 
-XX:+UseCompressedOops 

Quindi ho aggiunto le variabili d'ambiente STUDIO_VM_OPTIONS nel mio file .profile:

  • export STUDIO_VM_OPTIONS=/Users/youruser/.AndroidStudioSettings/studio.vmoptions

Quindi ricarico il mio .profile:

  • source ~/.profile

E finalmente apro Android Studio:

  • open /Applications/Android\ Studio.app

E ora come puoi vedere usando la barra di stato , ho più di 2000 MB disponibili per Android Studio:

inserisci qui la descrizione dell'immagine

Puoi personalizzare i tuoi valori in base alle tue esigenze nel mio caso 2048Mb sono sufficienti.

AGGIORNAMENTO: Android Studio 2.0 ti consente di modificare questo file accedendo a "Modifica opzioni VM personalizzate" dal menu Aiuto, basta copiare e incollare le variabili che potresti voler mantenere per aumentarlo per tutte le versioni che potresti avere sulla tua scatola.


Questa soluzione non funzionerebbe solo quando si apre AS dalla shell?
guy.gc

Dove stai digitando i comandi come export STUDIO_VM_OPTIONS=/Users/youruser/.AndroidStudioSettings/studio.vmoptionsnel terminale?
COYG

31

Non modificare alcun file nella directory di installazione dell'IDE. È invece possibile personalizzare gli attributi creando i propri file .properties o .vmoptions nelle seguenti directory. (Questo è stato possibile su alcune piattaforme in precedenza, ma richiedeva di copiare e modificare l'intero contenuto dei file. Con le ultime modifiche queste proprietà ora sono invece additive in modo tale che puoi impostare solo gli attributi che ti interessano, e il resto utilizzerà i valori predefiniti dall'installazione IDE).

Nota: a partire da Android Studio 2.0, è possibile creare / modificare questo file accedendo al file "Modifica opzioni VM personalizzate" dal menu Guida.

http://tools.android.com/tech-docs/configuration

inserisci qui la descrizione dell'immagine


12

Se stai usando MAC BOOK , questa opzione è disponibile in Applicazioni -> Fai clic con il pulsante destro del mouse su Android Studio, quindi scegli Mostra contenuto pacchetto -> bin .

inserisci qui la descrizione dell'immagine

o

Aperto -e /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions

Quindi aumentare il Xmxvalore

-Xms128m
-Xmx2048m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops

Ora il tuo Android Studio sarà velocissimo.


10

Android Studio 3.1 ha la possibilità di modificare le opzioni di personalizzazione della memoria virtuale.

Puoi andare su Android Studio> Guida> Modifica opzioni VM personalizzate

inserisci qui la descrizione dell'immagine

Quindi incolla il codice delle impostazioni di seguito in studio64.exe.vmoptions file e .

percorso del file: "\ Users \ nomeutente \ .AndroidStudio3. ** \ config \"

-Xms128m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops

1
L'ultima riga è sbagliata: Android Studio 3.2 si arresta in modo anomalo all'avvio con esso lì.
CommonsWare

9

Nota: ora questa non è la risposta per il post, ma forse sarà utile per qualcuno che sta cercando.

Se niente di tutto questo funziona per te, prova su un Mac questo per vedere se ti aiuta, nell'ultima versione di Android Studio, studio.vmoptions si trova all'interno di AndroidStudio.app nella cartella Applicazioni.

Quindi fai clic con il tasto destro o ctrl fai clic su AndroidStudio.App e quindi seleziona mostra il contenuto del pacchetto in cui si trova studio.vmoptions:

Contenuti / bin / studio.vmoptions

Sostituiscilo o modificalo e otterrai tutta la RAM di cui hai bisogno.

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine

Saluti.


Non dovresti cambiare quel file, ma quello indicato qui: tools.android.com/tech-docs/configuration . Per Mac: ~ / Library / Preferences / {FOLDER_NAME} /studio.vmoptions
GaRRaPeTa

6

Ho provato la cosa _JAVA_OPTIONS ma non funzionava ancora per me.

Alla fine, ciò che ha funzionato per me è stato il seguente:

  • Avvio di studio64.exe invece di studio.exe (ho una macchina a 64 bit).
  • Aggiungi / Modifica i seguenti valori in "studio64.exe.vmoptions":

-Xms2048m
-Xmx2048m
-XX:MaxPermSize=1024m
-XX:+CMSClassUnloadingEnabled
-XX:+CMSPermGenSweepingEnabled 
-XX:+HeapDumpOnOutOfMemoryError
-Dfile.encoding=utf-8


1
Ha fatto esattamente lo stesso di te, ho ancora gli errori di memoria esaurita
Raphael Royer-Rivard

Hai effettuato l'aggiornamento all'ultima versione di Android Studio? Sto usando Canary Channel e ho 1.0 RC 4
ExpensiveBelly

No, ero il 0.8.14, ma ho trovato la causa della perdita di memoria. Creare un colore chiamato "light_gray" e usarlo in un file di layout utilizza una memoria infinita ... "light_grey" va bene comunque.
Raphael Royer-Rivard

6

Ci sono molte risposte che ora sono obsolete. Il modo desiderato di modificare la dimensione dell'heap per Android Studio è cambiato di recente.

Gli utenti dovrebbero ora creare il proprio file vmoptions in una delle seguenti directory;

Finestre: %USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptions

Mac: ~/Library/Preferences/{FOLDER_NAME}/studio.vmoptions

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

Il contenuto del *.vmoptionsfile appena creato dovrebbe essere:

-Xms128m
-Xmx750m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=96m
-XX:+UseCompressedOops

Per aumentare l'assegnazione della RAM, passare -XmX750ma un altro valore.

Le istruzioni complete possono essere trovate qui: http://tools.android.com/tech-docs/configuration


1
ma non ci sono file studio.vmoptionsnel percorso che hai menzionato. sono sotto%AndroidStudioInstallationPath%\bin\studio.exe.vmoptions
Mulgard

Questa è la risposta esatta. Altri sono obsoleti o scoraggiati.
GaRRaPeTa

4

Per prima cosa controlla la quantità di memoria allocata per il tuo studio Android per verificare che segui questi passaggi:

File -> Impostazioni-> Aspetto e comportamento-> Aspetto

quindi controlla l'opzione mostra indicatore di memoria come sotto la parte evidenziata in rosso dell'immagine inserisci qui la descrizione dell'immagine

Nel mio caso la mia RAM è di 12 GB, quindi ho allocato memoria per Android Studio 6 GB. Per modificare, segui questi passaggi

Aiuto-> Modifica opzioni VM personalizzate

-Xmx6g

Nel mio caso, l'ho impostato a 6 GB perché la RAM del mio PC è di 12 GB. Sta a te la quantità di memoria che vuoi allocare al tuo studio Android


3

Su Windows 7, i file di configurazione su [INSTALL-LOCATION]\binsembrano essere ignorati. Secondo la seguente documentazione di Google, il file da modificare dovrebbe essere qui:%USERPROFILE%\.AndroidStudio\studio[64].exe.vmoptions

http://tools.android.com/tech-docs/configuration

Strano che non ci sia un file di questo tipo su un'installazione pulita di Android Studio 1.1 dal sito dello sviluppatore. E si trovano nella vecchia posizione (ignorata). Una volta copiato il file ( studio.exe.vmoptionsnel mio caso) e modificato, la modifica viene rispettata.

Tuttavia, il divertimento non finisce qui. C'è un valore superiore per il -Xmxquale può essere correlato alla quantità di memoria nel sistema. Ho appena urtato memoria della mia macchina da 4GB a 16GB, e assunse ho potuto impostare -Xmxa 2048m, ma ho scoperto che se ho impostato a qualcosa di più grande di 1500m,Android Studio sarebbe fallire in modo silenzioso per lancio con alcuna indicazione a tutti perché. Ho più RAM in arrivo, quindi sarà interessante vedere se posso aumentare il valore a quel punto.

Spero che queste informazioni aggiuntive siano utili. Mentre tutte le risposte di cui sopra erano indubbiamente vere a un certo punto (e potrebbero ancora esserlo in alcuni ambienti), ho scoperto che questo era l'unico approccio che ha aumentato la memoria utilizzata da AS per me.


2

Apri studio.vmoptions e modifica le opzioni JVM

studio.vmoptions si trova in / Applications / Android \ Studio.app/bin/studio.vmoptions (Mac OS). Nella mia macchina, sembra

-Xms128m
-Xmx800m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops

Cambia in

-Xms256m
-Xmx1024m
-XX:MaxPermSize=350m
-XX:ReservedCodeCacheSize=64m
-XX:+UseCodeCacheFlushing
-XX:+UseCompressedOops

E riavvia Android Studio

Vedi altro sito web di Android Studio


2

Ho trovato su Windows 7/8 (64 bit), a partire da Android Studio 1.1.0:

[INSTALL_DIR]\bin\studio64.exe.vmoptions essere usato (se esiste), altrimenti ricorrerebbe sempre a %USERPROFILE%.\AndroidStudio\studio[64].exe.vmoptions

Se vuoi che le impostazioni vengano gestite da %USERPROFILE%.\AndroidStudio\studio[64].exe.vmoptions, elimina semplicemente quella nella directory di installazione.


2

Vai in Gradle Scripts -> local.properties e incolla questo

`org.gradle.jvmargs=-XX\:MaxHeapSize\=512m -Xmx512m`

, se vuoi cambiarlo in 512. Spero che funzioni!


2

non è necessario modificare il file bin / studio.exe.vmoptions, che verrà verificato durante l'applicazione della patch di aggiornamento.

Le soluzioni sono qui http://tools.android.com/tech-docs/configuration

copia quel file nella seguente posizione, quindi modifica -Xmx1280m come preferisci.

Finestre:

%USERPROFILE%\.{FOLDER_NAME}\studio.exe.vmoptions e / o %USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptions

%USERPROFILE%\.{FOLDER_NAME}\idea.properties

Mac:

~/Library/Preferences/{FOLDER_NAME}/studio.vmoptions ~/Library/Preferences/{FOLDER_NAME}/idea.properties

Linux:

~/.{FOLDER_NAME}/studio.vmoptions e / o ~/.{FOLDER_NAME}/studio64.vmoptions

~/.{FOLDER_NAME}/idea.properties


1
È più sicuro utilizzare la funzione propria di IntelliJs / Android Studios per farlo: Apri l'IDE e fai clic su "Aiuto" -> "Modifica opzioni VM personalizzate"
Thommy

2

Se questo Xmse il Xmxproblema di memoria insufficiente si sono verificati ogni volta che stavo lavorando con l'XML. Ho anche provato ad aumentare questa memoria, solo per scoprire che ci è voluto un po 'di più perché accadesse di nuovo.

Dopo essermi sentito molto frustrato e aver quasi deciso di riconvertire tutti i miei progetti attuali in Eclipse, cosa che non volevo fare, ho capito cosa lo stava causando e sono stato in grado di ripetere questo errore e prevenirlo ogni volta.

Durante la modifica dell'XML in (Vista testo) e utilizzando la vista di rendering "Anteprima", ciò causa ogni volta la perdita di memoria. Disattivando "Anteprima" e utilizzando la scheda Progettazione per eseguire il rendering solo dello schermo, sono in grado di utilizzare Android Studio tutto il giorno, senza crash.

Vorrei che questo potesse essere risolto per sempre, perché sarebbe molto bello usare il rendering "Anteprima" durante la modifica dell'XML, tuttavia sono contento di poter continuare a utilizzare Android Studio.


2

Ecco come modificare la dimensione dell'heap attualmente in Android Studio 3.6.1

Su Windows nel tuo Android Studio:

  1. Seleziona File -> Impostazioni (verrà visualizzato il popup in basso)

Finestra di dialogo Impostazioni

  1. Seleziona Aspetto e comportamento
  2. Seleziona Impostazioni di sistema
  3. Seleziona Impostazioni memoria

Quindi modificare le impostazioni delle dimensioni dell'heap IDE sul valore desiderato

Su Mac:

  1. Seleziona Android Studio
  2. Seleziona Preferenze

Apparirà lo stesso pop-up. Tuttavia, questa volta sul Mac si chiama Preferenze.

Seguire gli stessi passaggi della versione Windows di Android Studio per regolare la dimensione dell'heap se la finestra di dialogo Preferenze è stata visualizzata


1

Può aiutare qualcuno che ha questo problema:

Ho modificato il studio64.exe.vmoptionsfile, ma non sono riuscito a salvare.

Quindi ho aperto questo file con Notepad ++ in Run as Administratormodalità e poi l' ho salvato con successo.


1

-Xms256m 
-Xmx2048m 
-XX:MaxPermSize=512m 
-XX:ReservedCodeCacheSize=128m 
-XX:+UseCompressedOops 


6
Una piccola spiegazione migliorerebbe sicuramente la tua risposta.
m02ph3u5

1

SE modificando o creando il .studio.exe.vmoptionsnon funziona, provare a cambiare il gradle.propertiesfile e modificare la dimensione dell'heap secondo le proprie esigenze.

Ha funzionato davvero per me sul mio Windows 7 con 4 Gb di RAM e Android Studio 2.2 installato su di esso.

Funziona correttamente senza errori e visualizza "Gradle Sync complete"


Ho dovuto aggiungere un grade.properties per impostare la dimensione massima dell'heap utilizzata durante il debug della mia app. Ma devo chiederti, perché l'impostazione di studio.vmoptions come menzionato nella pagina di configurazione di Android Studio non funziona come pubblicizzato? La mia preoccupazione è che sto facendo qualcosa di fondamentalmente sbagliato (ma di sicuro non sembra). (Grazie) ho postato una domanda nel dettaglio: stackoverflow.com/questions/40833031/...
JimCzek

1

Su Mac OSX è possibile modificare facilmente la dimensione dell'heap andando alla prima voce di menu, Android Studio> preferenze> Impostazioni di sistema (menu a sinistra)> Impostazioni di memoria e modificare la dimensione dell'heap nella finestra di dialogo.

inserisci qui la descrizione dell'immagine

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.