Android Studio - Jak zwiększyć przydzielony rozmiar sterty


118

Używam Android Studio od 3 miesięcy i jedna z aplikacji, na których zacząłem, stała się dość duża. Zużycie pamięci wskazane w prawym dolnym rogu programu wskazuje, że moja przydzielona sterta wynosi maksymalnie 494M.

wprowadź opis obrazu tutaj

Kiedy zaczynam zmieniać pliki XML, moje użycie pamięci szybko osiąga ten limit, a IDE ulega awarii z błędem braku pamięci, takim jak ten.

wprowadź opis obrazu tutaj

Próbowałem zwiększyć rozmiar sterty za pomocą tego, ale jak dotąd nie przyniosło to żadnego efektu.

Przejrzałem dziesiątki artykułów i innych pytań, jak zwiększyć rozmiar sterty, ale żadna z ich odpowiedzi nie działa. Bez względu na to, co zrobię z opcjami VMOPTIONS lub ustawieniami IDE, rozmiar sterty nigdy się nie zwiększy. Wydaje mi się, że edytuję poprawny plik dla VMOPTIONS, ponieważ jeśli celowo podam mu nieprawidłowe polecenie, Android Studio narzeka na to i nie uruchamia się.

Używam systemu Windows 7 - 64 bit i mam 16 GB pamięci RAM. Czy ktoś inny miał ten problem z Android Studio? Czy byłeś w stanie to naprawić?


Zobacz odpowiedź @ moxi poniżej, aby uzyskać najbardziej aktualne informacje na temat konfigurowania ustawień specyficznych dla użytkownika dla pamięci i studyjnej maszyny JVM startowej stackoverflow.com/a/29057416/396005
Bron Davies

1
Zaktualizowana dokumentacja Android Studio: developer.android.com/studio/intro/ ...
Morrison Chang

Odpowiedzi:


136

-------EDYTOWAĆ--------

Android Studio 2.0 lub nowszy, możesz utworzyć / edytować ten plik, uzyskując dostęp do opcji „Edytuj niestandardowe opcje maszyny wirtualnej” z menu Pomoc.

------- ORYGINALNA ODPOWIEDŹ --------

Otwórz plik znajdujący się pod adresem

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

Zmień zawartość na

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

Xmxokreśla maksymalną pulę alokacji pamięci dla wirtualnej maszyny języka Java (JVM), podczas gdy Xmsokreśla początkową pulę alokacji pamięci. Twoja maszyna JVM zostanie uruchomiona z Xmsilością pamięci i będzie mogła wykorzystać maksymalnieXmx ilość pamięci.

Zapisz studio.vmoptions plik i uruchom ponownie Android Studio.

Więcej w tym poście .

Uwaga:

Jeśli zmieniłeś rozmiar sterty dla IDE, musisz ponownie uruchomić Android Studio przed zastosowaniem nowych ustawień pamięci. ( źródło )


To rozwiązało problem z bardzo dużym projektem, w którym Android Studio zabrakło pamięci po 15 minutach podczas budowania mapy symboli. Zmieniłem Xms na 1024m, a Xmx na 4096 i mapa symboli została zbudowana w mniej niż 30 sekund - więc garbage collector musiał miotać się przez długi czas.
RikMaxSpeed

10
Jak zauważył Lord Flash: od wersji Android Studio 2.0 można tworzyć / edytować ten plik, uzyskując dostęp do opcji „Edytuj niestandardowe opcje maszyny wirtualnej” z menu Pomoc.
Lasse Magnussen

Dzięki, to bardzo przydatne. Do Twojej wiadomości, jeśli używasz wersji 64-bitowej, plik do edycji nosi nazwę studio64.exe.vmoptions.
Eselfar

50

Spojrzałem na moje zmienne środowiskowe i wywołałem zmienną systemową _JAVA_OPTIONSz wartością -Xms256m -Xmx512m, po zmianie jej -Xms256m -Xmx1024mna maksymalny rozmiar sterty odpowiednio wzrosła.


9
Nie było zmiennej systemowej o nazwie _JAVA_OPTIONS. ale ręcznie utworzyłem nowy i działa dobrze. dzięki.
Yasir Ali

Dobrze, to działa! Zastanawiam się, czy zwiększenie rozmiaru sterty to dobra rzecz ... To znaczy działa i na pewno w niektórych przypadkach jest właściwy, ale czy zawsze jest właściwy? A może są lepsze rozwiązania? Dzięki!
Marino

czy ten problem jest również związany z wielkością stosu stackoverflow.com/questions/29148374/ ...
Sagar Devanga

Dla mnie też nie działało, ale okazuje się, że Android Studio pozwoliło niektórym procesom Java zawiesić się po poprzednich wykonaniach i oczywiście wszystkie nadal zużywały dużo pamięci.
alex.magellan

48

Możesz też przejść do swojego android-studio\binfolderu i zmienić te wartości -Xmx i -Xms w plikach studio.exe.vmoptionslub studio64.exe.vmoptions(w zależności od używanej wersji).


2
To nie zadziałało, ponieważ zmienna _JAVA_OPTIONS była używana jako wartość domyślna.
zafrani

Zmieniłem obie opcje (vmoptions i _JAVA_OPTIONS), ale nadal mam błąd
Raphael Royer-Rivard

Jeśli celowo wprowadzisz błąd składni do vmoptions, czy spowoduje to awarię programu po ponownym uruchomieniu?
zafrani

Nie jestem pewien, ale myślę, że nie powinno. Czy mogę również zapytać, dlaczego celowo wprowadzasz błąd składni w opcjach vmoptions?
croc


32

Zwiększyłem pamięć zgodnie z następną dokumentacją Google:

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

Domyślnie Android Studio ma przypisane maksymalnie 750 Mb, zmieniłem na 2048 Mb.

Wypróbowałem to, co opisało Google, ale dla mnie jedyne, co zadziałało, to użycie zmiennej środowiskowej. Opiszę co zrobiłem:

Najpierw utworzyłem katalog, który nazwałem .AndroidStudioSettings,

  • mkdir .AndroidStudioSettings

Następnie utworzyłem plik o nazwie studio.vmoptions i umieściłem w nim następującą zawartość:

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

Następnie dodałem zmienne środowiskowe STUDIO_VM_OPTIONS w moim pliku .profile:

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

Następnie wczytuję ponownie mój .profile:

  • source ~/.profile

I wreszcie otwieram Android Studio:

  • open /Applications/Android\ Studio.app

A teraz, jak widać, używając pasku stanu , mam ponad 2000 MB wolnego miejsca dla Android Studio:

wprowadź opis obrazu tutaj

Możesz dostosować swoje wartości do swoich potrzeb, w moim przypadku wystarczy 2048Mb.

AKTUALIZACJA: Android Studio 2.0 pozwala na modyfikację tego pliku poprzez dostęp do "Edytuj niestandardowe opcje maszyny wirtualnej" z menu Pomoc, po prostu skopiuj i wklej zmienne, które chcesz zachować, aby zwiększyć je w celu ewolucji, które możesz mieć na swoim komputerze.


Czy to rozwiązanie nie działałoby tylko podczas otwierania AS z powłoki?
guy.gc

Gdzie wpisujesz polecenia, takie jak export STUDIO_VM_OPTIONS=/Users/youruser/.AndroidStudioSettings/studio.vmoptionsw terminalu?
COYG

31

Nie należy edytować żadnych plików w katalogu instalacyjnym IDE. Zamiast tego można dostosować atrybuty, tworząc własne pliki .properties lub .vmoptions w następujących katalogach. (Było to możliwe wcześniej na niektórych platformach, ale wymagało to skopiowania i zmiany całej zawartości plików. Po najnowszych zmianach te właściwości są teraz addytywne, zamiast tego można ustawić tylko te atrybuty, na których Ci zależy, a resztę użyje ustawień domyślnych z instalacji IDE).

Uwaga: Począwszy od wersji Android Studio 2.0, możesz utworzyć / edytować ten plik, uzyskując dostęp do pliku „Edytuj niestandardowe opcje maszyny wirtualnej” z menu Pomoc.

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

wprowadź opis obrazu tutaj


12

Jeśli używasz MAC BOOK , ta opcja jest dostępna w aplikacjach -> kliknij prawym przyciskiem myszy Android Studio, a następnie wybierz Pokaż zawartość pakietu -> bin .

wprowadź opis obrazu tutaj

lub

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

Następnie zwiększ Xmxwartość

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

Teraz Twoje Android Studio będzie superszybkie.


10

Android Studio 3.1.0 ma opcję edycji dostosowanych opcji pamięci wirtualnej.

Możesz przejść do Android Studio> Pomoc> Edytuj niestandardowe opcje maszyny wirtualnej

wprowadź opis obrazu tutaj

Następnie wklej poniższy kod ustawień do pliku studio64.exe.vmoptions pliku i zapisz go.

lokalizacja pliku: „\ Users \ nazwa_użytkownika \ .AndroidStudio3. ** \ config \”

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

1
Ta ostatnia linia jest błędna - Android Studio 3.2 ulega awarii podczas uruchamiania.
CommonsWare

9

Uwaga: teraz nie jest to odpowiedź na post, ale może to będzie pomocne dla kogoś, kto szuka.

Jeśli nic z tego nie działa, wypróbuj to na komputerze Mac, aby sprawdzić, czy pomaga, w ostatniej wersji Android Studio plik studio.vmoptions znajduje się w AndroidStudio.app w folderze Aplikacje.

Więc kliknij prawym przyciskiem myszy lub kliknij, przytrzymując klawisz Ctrl, aplikację AndroidStudio.App, a następnie wybierz opcję Pokaż zawartość pakietu, w której znajduje się studio.vmoptions:

Zawartość / bin / studio.vmoptions

Wymień go lub zmień, a otrzymasz całą potrzebną pamięć RAM.

wprowadź opis obrazu tutaj wprowadź opis obrazu tutaj

Pozdrowienia.


Nie powinieneś zmieniać tego pliku, ale ten podany tutaj: tools.android.com/tech-docs/configuration . Mac: ~ / Library / Preferences / {FOLDER_NAME} /studio.vmoptions
GaRRaPeTa

6

Wypróbowałem _JAVA_OPTIONS, ale nadal nie działało.

W końcu to, co zadziałało dla mnie, było następujące:

  • Uruchamiam studio64.exe zamiast studio.exe (mam komputer 64-bitowy).
  • Dodaj / zmień następujące wartości w pliku „studio64.exe.vmoptions”:

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


1
Zrobiłem dokładnie to samo co ty, nadal mam błędy braku pamięci
Raphael Royer-Rivard

Czy zaktualizowałeś do najnowszej wersji Android Studio? Używam Canary Channel i mam 1.0 RC 4
ExpensiveBelly,

Nie, byłem na 0.8.14, ale znalazłem przyczynę wycieku pamięci. Utworzenie koloru o nazwie „light_gray” i użycie go w pliku układu zużywa nieskończoną ilość pamięci ... „light_grey” jest jednak w porządku.
Raphael Royer-Rivard,

6

Istnieje wiele nieaktualnych odpowiedzi. Pożądany sposób zmiany rozmiaru sterty dla Android Studio niedawno się zmienił.

Użytkownicy powinni teraz utworzyć własny plik vmoptions w jednym z następujących katalogów;

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

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

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

Zawartość nowo utworzonego *.vmoptionspliku powinna wyglądać następująco:

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

Aby zwiększyć przydział pamięci RAM, zmień -XmX750mna inną wartość.

Pełne instrukcje można znaleźć tutaj: http://tools.android.com/tech-docs/configuration


1
ale w podanej studio.vmoptionsścieżce nie ma pliku . są pod%AndroidStudioInstallationPath%\bin\studio.exe.vmoptions
Mulgard

To jest właściwa odpowiedź. Inne są przestarzałe lub zniechęcone.
GaRRaPeTa

4

Najpierw sprawdź, ile pamięci przydzielono dla Twojego studia Android, aby sprawdzić, czy wykonaj następujące kroki:

Plik -> Ustawienia-> Wygląd i zachowanie-> Wygląd

następnie sprawdź opcję pokazania wskaźnika pamięci, jak na poniższym obrazku, podświetlona na czerwono część wprowadź opis obrazu tutaj

W moim przypadku moja pamięć RAM to 12 GB, więc przydzieliłem pamięć dla Android Studio 6 GB .Aby edytować, wykonaj następujące kroki

Pomoc-> Edytuj niestandardowe opcje maszyny wirtualnej

-Xmx6g

W moim przypadku ustawiłem 6 GB, ponieważ mój komputer RAM ma 12 GB. Od Ciebie zależy, ile pamięci chcesz przydzielić do swojego studia Android


3

W systemie Windows 7 pliki konfiguracyjne pod adresem [INSTALL-LOCATION]\binwydają się być ignorowane. Zgodnie z następującą dokumentacją Google plik do modyfikacji powinien znajdować się tutaj:%USERPROFILE%\.AndroidStudio\studio[64].exe.vmoptions

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

Dziwne, że nie ma takiego pliku po czystej instalacji Android Studio 1.1 z witryny programistów. Znajdują się w starej (ignorowanej) lokalizacji. Po skopiowaniu pliku (studio.exe.vmoptions w moim przypadku) i zmodyfikowaniu go, zmiana jest przestrzegana.

Jednak zabawa na tym się nie kończy. Istnieje górna wartość, -Xmxktóra może być związana z ilością pamięci w systemie. Właśnie wpadł pamięć mojego urządzenia z 4GB do 16GB, i zakłada mogę ustawić -Xmxaby 2048m, ale uważam, że jeśli ustawić go do czegoś większego niż 1500m,Android Studio będzie cicho nie uruchomienia bez wskazania w ogóle dlaczego. Mam więcej pamięci RAM w drodze, więc ciekawie będzie zobaczyć, czy w tym momencie mogę zwiększyć wartość.

Mam nadzieję, że te dodatkowe informacje okażą się pomocne. Chociaż wszystkie powyższe odpowiedzi były niewątpliwie prawdziwe w pewnym momencie (i mogą nadal być w niektórych środowiskach), stwierdziłem, że było to jedyne podejście, które zwiększyło pamięć używaną przez AS dla mnie.


2

Otwórz studio.vmoptions i zmień opcje JVM

Studio.vmoptions znajduje się w / Applications / Android \ Studio.app/bin/studio.vmoptions (Mac OS). W mojej maszynie wygląda na to

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

Zmień na

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

I uruchom ponownie Android Studio

Zobacz więcej na stronie Android Studio


2

Znalazłem w systemie Windows 7/8 (64-bit), od wersji Android Studio 1.1.0:

[INSTALL_DIR]\bin\studio64.exe.vmoptions być używany (jeśli istnieje), w przeciwnym razie zawsze wróciłby do %USERPROFILE%.\AndroidStudio\studio[64].exe.vmoptions

Jeśli chcesz, aby ustawienia były zarządzane z poziomu %USERPROFILE%.\AndroidStudio\studio[64].exe.vmoptions, po prostu usuń to z katalogu instalacyjnego.


2

Przejdź do Skrypty Gradle -> local.properties i wklej to

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

, jeśli chcesz zmienić to na 512. Mam nadzieję, że zadziała!


2

nie należy modyfikować pliku bin / studio.exe.vmoptions, który zostanie zweryfikowany podczas stosowania poprawki aktualizacyjnej.

Rozwiązania są tutaj http://tools.android.com/tech-docs/configuration

skopiuj ten plik do następującej lokalizacji, a następnie zmień -Xmx1280m na ​​cokolwiek chcesz.

Okna:

%USERPROFILE%\.{FOLDER_NAME}\studio.exe.vmoptions i / lub %USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptions

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

Prochowiec:

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

Linux:

~/.{FOLDER_NAME}/studio.vmoptions i / lub ~/.{FOLDER_NAME}/studio64.vmoptions

~/.{FOLDER_NAME}/idea.properties


1
W tym celu bezpieczniej jest skorzystać z własnej funkcji IntelliJs / Android Studios: Otwórz IDE i kliknij „Pomoc” -> „Edytuj niestandardowe opcje maszyny wirtualnej”
Thommy

2

Miałem to XmsiXmx problem problem braku pamięci przydarzyły mi się za każdym razem, gdy pracowałem z XML. Próbowałem też zwiększyć tę pamięć, ale okazało się, że to się powtórzyło trochę dłużej.

Po tym, jak byłem bardzo sfrustrowany i prawie zdecydowałem się przekonwertować wszystkie moje obecne projekty z powrotem do Eclipse, czego nie chciałem robić, zorientowałem się, co go powoduje i byłem w stanie powtórzyć tę awarię i za każdym razem jej zapobiec.

Podczas edycji XML w (Widok tekstu) i przy użyciu widoku renderowania „Podgląd” powoduje to za każdym razem utratę pamięci. Wyłączając "Podgląd" i używając zakładki Projekt do renderowania samego ekranu, mogę korzystać z Android Studio przez cały dzień, bez awarii.

Chciałbym, żeby to zostało naprawione na dobre, ponieważ byłoby bardzo fajnie użyć renderowania "Preview" podczas edycji XML, jednak cieszę się, że mogę nadal używać Android Studio.


2

W ten sposób możesz zmienić rozmiar sterty obecnie w Android Studio 3.6.1

W systemie Windows w Android Studio:

  1. Wybierz Plik -> Ustawienia (wyświetli się okienko poniżej)

Okno dialogowe ustawień

  1. Wybierz Wygląd i zachowanie
  2. Wybierz Ustawienia systemowe
  3. Wybierz Ustawienia pamięci

Następnie zmień ustawienia rozmiaru sterty IDE na żądaną wartość

Na komputerze Mac:

  1. Wybierz Android Studio
  2. Wybierz Preferencje

Pojawi się to samo okienko. Jednak tym razem na komputerze Mac nazywa się Preferencje.

Wykonaj te same czynności, co w wersji Android Studio dla systemu Windows, aby dostosować rozmiar sterty, aby zostało wyświetlone okno dialogowe Preferencje


1

Może pomóc komuś, kto ma ten problem:

Edytuję studio64.exe.vmoptionsplik, ale nie udało mi się go zapisać.

Więc otworzyłem ten plik w Notepad ++ w Run as Administratortrybie, a następnie pomyślnie zapisałem.


1

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


6
Małe wyjaśnienie z pewnością poprawiłoby twoją odpowiedź.
m02ph3u5

1

JEŚLI zmiana lub utworzenie .studio.exe.vmoptionsnie działa, spróbuj zmienić gradle.propertiesplik i zmień rozmiar sterty zgodnie z wymaganiami.

To naprawdę zadziałało na moim Windows 7 z 4Gb RAM i zainstalowanym Android Studio 2.2.

Działa poprawnie, bez błędów i wyświetla komunikat „Gradle Sync zakończony”


Musiałem dodać grade.properties, aby ustawić maksymalny rozmiar sterty, który był używany podczas debugowania mojej aplikacji. Ale muszę zapytać, dlaczego ustawienie studio.vmoptions, jak wspomniano na stronie konfiguracji Android Studio, nie działa tak, jak w reklamie? Martwię się, że robię coś zasadniczo złego (ale na pewno na to nie wygląda). (Dzięki) Opublikowałem szczegółowe pytanie pod adresem: stackoverflow.com/questions/40833031/…
JimCzek

1

W systemie Mac OSX można łatwo zmienić rozmiar sterty, przechodząc do pierwszej pozycji menu, Android Studio> preferencje> Ustawienia systemowe (lewe menu)> Ustawienia pamięci i zmienić rozmiar sterty w oknie dialogowym.

wprowadź opis obrazu tutaj

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.