Studio Android zajmuje zbyt dużo pamięci

175

Zainstalowałem Android Studio 1.0 RC 2. Mam zainstalowane 4 GB pamięci RAM, ale po uruchomieniu Android Studio i uruchomieniu Android Emulator, ponad 90% pamięci fizycznej zostało wykorzystane tylko przez te dwa. Czy istnieje sposób na zmniejszenie tego zużycia pamięci? Z powodu tego problemu z pamięcią nie mogę jednocześnie otwierać innych aplikacji. wprowadź opis obrazu tutaj

PPD
źródło
17
Używanie Eclipse lub Android Studio i emulatora na maszynie deweloperskiej z systemem Windows o pojemności 4 GB będzie bardzo bolesne. Chciałbym gorąco polecić, że albo uaktualnić RAM jednym komputerze użytkownika (8GB lub więcej), test na urządzeniu (zamiast emulatorze) lub pominąć IDE i zrobić swój rozwój za pomocą zwykłego edytora i narzędzi wiersza polecenia.
CommonsWare
2
Wydaje mi się, że używasz systemu Windows, sądząc po opublikowanym przez Ciebie zrzucie ekranu. Ale która wersja systemu Windows? Ponadto, ponieważ Android Studio jest wciąż w powijakach, będziesz mieć z nim wiele problemów. Jeśli nie potrzebujesz wsparcia Gradle, zawsze możesz wypróbować Eclipse - IDE zostało wypróbowane i przetestowane przez lata, więc jest całkiem solidne dla środowiska programistycznego - pod względem pamięci RAM.
ChuongPham
1
@CommonsWare Czy wiesz, czy to samo dotyczy komputerów z systemem Linux? Z góry dziękuję.
Alexander Kulyakhtin
4
@PPD: W systemie Windows wyłącz niepotrzebne usługi za pomocą narzędzi administracyjnych | Opcja usług . Przejdź do msconfigi wyłącz niepotrzebne aplikacje na karcie Uruchamianie . Wyłącz niepotrzebne efekty wizualne w systemie Windows. Po uruchomieniu emulatora Androida włącz opcję Użyj procesora graficznego hosta , szczególnie jeśli masz wydajną kartę graficzną. Mam komputer deweloperski z systemem Windows 7 i używam tylko 2-2,5 GB pamięci RAM w dowolnym momencie, co obejmuje: Windows 7, Eclipse, Mozilla Firefox (bez dodatków) i kroki dostosowywania systemu Windows, o których wspomniałem. Używam też Fedory i używa ona jeszcze mniej pamięci niż Windows.
ChuongPham
3
Tylko uwaga: widzę, że masz otwarte kilka kart Google Chrome. Państwo może okaże się, że Firefox używa nieco mniej pamięci RAM, ponieważ nie wykorzystują proces za karcie przeglądarki.
Sam

Odpowiedzi:

224

Obecnie używam Android Studio na komputerze z systemem Windows 8.1 z 6 gigabajtami pamięci RAM.

Odkryłem, że wyłączenie VCS w Android Studio i użycie zewnętrznego programu do obsługi VCS bardzo pomogło. Możesz wyłączyć VCS, przechodząc do Plik -> Ustawienia -> Wtyczki i wyłącz:

  • Integracja z CVS
  • Integracja z Git
  • GitHub
  • Testowanie w chmurze Google
  • Google Cloud Tools Core
  • Narzędzia Google Cloud dla Android Studio
  • hg4idea
  • Integracja z Subversion
  • Integracja rtęciowa
  • TestNG-J
jds17
źródło
18
nie, bardzo mała zmiana.
krivar
5
Ogromna różnica, gdy projekt jest skonfigurowany z dowolnym repozytorium, takim jak svn lub github. mój czas oczekiwania na wykonanie został skrócony z> 3 min do <1 min. Wielkie dzięki za niesamowitą pomoc.
Eee. Kaushik Kajavadara
4
Wydaje się, że to działa i robi dużą różnicę, chociaż pozostawiłem włączoną opcję „Git Integration”. Idealnie, Android Studio powinno mieć te ustawienia jako domyślne.
Mr-IDE,
3
Użyłem tej metody w przypadku mini obudowy HP 6005 z 4 GB pamięci RAM i procesorem AMD X4. po dezaktywacji wszystkich tych wtyczek moje studio z Androidem otworzyło się bardzo szybko, nie mogę uwierzyć. przed uruchomieniem studia Android zajmuje 15 sekund, ale teraz pojawia się w 1 sekundę. dzięki
AN
2
Wyłącz także integrację Mercurial, TestNG-J;
xiaoweiz
108

W moim przypadku były dwa główne źródła zawijania pamięci: IDE i Gradle:

Android Studio (do 1,5 GB)

Maszyna JVM środowiska IDE jest skonfigurowana tak, aby mieć maksymalny rozmiar sterty. Możesz to zobaczyć w prawym dolnym rogu głównego interfejsu:

Android Studio pokazujące maksymalny rozmiar sterty 725M

Można zmniejszyć ten edytując ustawienia związane z pamięcią w tym .vmoptionspliku . Na przykład zmieniłem maksymalny rozmiar sterty na 512 MB:

-Xmx512m

Niestety, odkryłem, że obniżenie tej wartości zwiększa częstotliwość tymczasowego zawieszania się Android Studio, być może w celu usunięcia śmieci.

Gradle (do 1,5 GB)

Gradle może również zużywać dużo pamięci RAM po pewnym czasie programowania. Windows pokazuje to jako Java(TM) Platform SE Binary:

Menedżer zadań Windows 8.1 pokazujący „Java (plik binarny TM Platform SE”) wykorzystujący 1460,5 MB pamięci

Możesz to naprawić, zmieniając opcje Gradle JVM. Możesz to zrobić dla każdego użytkownika, edytując gradle.properties:

  1. Otworzyć gradle.properties plik i utwórz go, jeśli nie istnieje:
    • Okna: %USERPROFILE%\.gradle\gradle.properties
    • Linux / Mac: ~/.gradle/gradle.properties
  2. Zaktualizuj org.gradle.jvmargswłaściwość, tworząc ją w razie potrzeby. Ustawiłem na to:

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

Nie zauważyłem żadnej różnicy w wydajności kompilacji dla mojego małego projektu z maksymalnym rozmiarem sterty ustawionym na 256 MB (-Xmx256m ).

Pamiętaj, że może być konieczne ponowne uruchomienie Android Studio, więc stary proces Gradle został zabity; w przeciwnym razie możesz skończyć z obydwoma działającymi w tym samym czasie.

Emulator

Jeśli chodzi o emulator zajmujący dużo pamięci RAM, zrzut ekranu pokazuje, że zajmuje około 800 MB. Możesz wybrać, ile pamięci RAM ma przydzielić emulatorowi:

  1. Edytuj plik AVD
  2. Naciśnij Pokaż ustawienia zaawansowane
  3. Zmniejsz wartość pamięci RAM

Konfiguracja pamięci RAM urządzenia wirtualnego z systemem Android

Sam
źródło
To w połączeniu z odpowiedzią SoJexy dramatycznie zwiększyło wydajność mojego komputera.
Josh Larson
Te wskazówki uratowały życie! Istnieje również opcja zmiany rozmiaru sterty używanej przez kompilator dex, co dodatkowo zmniejsza zużycie pamięci. Szczegóły: techzog.com/development/android-studio-high-ram-usage
Varun
1
W .vmoptionspliku jest napisane: *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/configurationJednak ponieważ wydaje się, że w moim systemie nie ma pliku specyficznego dla użytkownika, a strona internetowa nie wyjaśnia żadnych innych lokalizacji takiego pliku, skorzystam z tego rozwiązania. Aha i: MaxPermSize zostanie w pewnym momencie przestarzała. Zawsze ostrzega mnie o tym podczas uruchamiania IDE w terminalu.
Zelphir Kaltstahl
1
@Zelphir, której wersji systemu operacyjnego i Android Studio używasz? Używam systemu Windows, a instrukcje mówią, że plik jest pod %USERPROFILE%, co jest specyficzne dla użytkownika. Nie jestem zbyt dobry w Linuksie, ale instrukcje dla Maca i Linuksa mówią również, że plik znajduje się w ~katalogu domowym użytkownika? Jeśli pliku nie ma, może możesz go po prostu utworzyć; mówi dokumentacja, o której mowa powyżej Instead, you can customize the attributes by creating your own .properties or .vmoptions files in the following directories.. Czy możesz dać mi znać, czy to działa, abym zaktualizował odpowiedź?
Sam
3
Niesamowite sugestie! W przypadku Gradle rozwiązałem problem w sposób „obejmujący wszystkich użytkowników”, edytując ~/.gradle/gradle.properties.
Andrea Lazzarotto
51

Możesz przyspieszyć pracę Eclipse lub Android Studio, po prostu wykonaj następujące czynności:

  • Użyj / otwórz pojedynczy projekt na raz
  • wyczyść projekt po każdym uruchomieniu aplikacji w emulatorze
  • użyj urządzenia mobilnego / zewnętrznego zamiast emulatora
  • nie zamykaj emulatora po jednorazowym użyciu, za każdym razem używaj tego samego emulatora do uruchamiania aplikacji
  • Wyłącz VCS za pomocą Plik-> Ustawienia-> Wtyczki i wyłącz następujące elementy:
    1. Integracja
    CVS 2. Integracja z Git
    3.GitHub
    4.Google Cloud Tools for Android Studio
    5. Integracja z subwersją

Używam również Android Studio z zainstalowaną pamięcią główną o pojemności 4 GB, ale przestrzeganie tych instrukcji naprawdę zwiększa wydajność mojego Android Studio.

KulArtist
źródło
1
Wyłączyłem wszystkie rzeczy na liście. Nadal używa tego samego około 1,5 GB pamięci RAM
Arshad
@ arshadkazmi42 powiedz mi konfigurację swojego komputera
KulArtist
i3, 4 GB RAM, 500 GB HDD
Arshad
13
Myślę, że stwierdzenie, że „i3” jest przyczyną błędów w rzemiośle oprogramowania jest kompletnym nonsensem!
XMight,
1
Mój procesor i3 chce rzucić wyzwanie Twojemu> i3, czy chcesz przyjąć to wyzwanie? Nikt nie powie, że i3 powoduje wolniejsze działanie lub ma wysoką pamięć ...
Sabir Hossain
28

Android Studio opublikowało niedawno oficjalny przewodnik po maszynach z małą ilością pamięci: Przewodnik

Jeśli używasz Android Studio na komputerze o specyfikacji mniejszej niż zalecana (zobacz Wymagania systemowe), możesz dostosować IDE, aby poprawić wydajność swojego komputera w następujący sposób:

  • Zmniejsz maksymalny rozmiar sterty dostępny dla Android Studio : Zmniejsz maksymalny rozmiar sterty dla Android Studio do 512 MB.

  • Zaktualizuj Gradle i wtyczkę Android dla Gradle : Zaktualizuj do najnowszych wersji Gradle i wtyczki Android dla Gradle, aby mieć pewność, że korzystasz z najnowszych ulepszeń wydajności.

  • Włącz tryb oszczędzania energii : Włączenie trybu oszczędzania energii wyłącza szereg operacji w tle intensywnie wykorzystujących pamięć i baterię, w tym podświetlanie błędów i inspekcje w locie, automatyczne uzupełnianie kodu i automatyczna przyrostowa kompilacja w tle. Aby włączyć tryb oszczędzania energii, kliknij Plik> Tryb oszczędzania energii.

  • Wyłącz niepotrzebne sprawdzanie kłaczków : Aby zmienić sprawdzanie kłaczków, które Android Studio uruchamia na Twoim kodzie, wykonaj następujące czynności: Kliknij Plik> Ustawienia (na Macu, Android Studio> Preferencje), aby otworzyć okno dialogowe Ustawienia.W lewym okienku rozwiń sekcję Edytor i kliknij Inspekcje. Kliknij pola wyboru, aby zaznaczyć lub odznaczyć sprawdzanie kłaczków odpowiednio do projektu. Kliknij Zastosuj lub OK, aby zapisać zmiany.

  • Debugowanie na urządzeniu fizycznym : debugowanie na emulatorze zużywa więcej pamięci niż debugowanie na urządzeniu fizycznym, dzięki czemu można poprawić ogólną wydajność Android Studio, debugując na urządzeniu fizycznym.

  • Uwzględnij tylko niezbędne usługi Google Play jako zależności : dołączenie usług Google Play jako zależności w projekcie zwiększa ilość potrzebnej pamięci. Uwzględnij tylko niezbędne zależności, aby poprawić użycie pamięci i wydajność. Aby uzyskać więcej informacji, zobacz Dodawanie usług Google Play do projektu.

  • Zmniejsz maksymalny rozmiar sterty dostępny dla kompilacji pliku DEX : Ustaw wartość javaMaxHeapSize dla kompilacji pliku DEX na 200m. Aby uzyskać więcej informacji, zobacz Poprawianie czasu kompilacji przez konfigurowanie zasobów DEX .

  • Nie włączaj kompilacji równoległej : Android Studio może kompilować niezależne moduły równolegle, ale jeśli masz system z małą ilością pamięci, nie powinieneś włączać tej funkcji. Aby sprawdzić to ustawienie, wykonaj następujące czynności: Kliknij Plik> Ustawienia (na Macu, Android Studio> Preferencje), aby otworzyć okno dialogowe Ustawienia. W lewym okienku rozwiń Build, Execution, Deployment, a następnie kliknij Compiler. Upewnij się, że opcja Kompiluj niezależne moduły równolegle nie jest zaznaczona.Jeśli dokonałeś zmiany, kliknij Zastosuj lub OK, aby zmiana została zastosowana.

  • Włącz tryb offline dla Gradle : jeśli masz ograniczoną przepustowość, włącz tryb offline, aby uniemożliwić Gradle próbę pobrania brakujących zależności podczas kompilacji. Gdy tryb offline jest włączony, Gradle zgłosi błąd kompilacji, jeśli brakuje jakichkolwiek zależności, zamiast próbować je pobrać. Aby włączyć tryb offline, wykonaj następujące czynności:

    • Kliknij Plik> Ustawienia (na Macu, Android Studio> Preferencje), aby otworzyć okno dialogowe Ustawienia.

    • W lewym okienku rozwiń Build, Execution, Deployment, a następnie kliknij Gradle.

    • W obszarze Global Gradle settings zaznacz pole wyboru Offline work.

    • Kliknij Zastosuj lub OK, aby zmiany odniosły skutek.

Androidmeda
źródło
16

Użyłem wszystkich powyższych zaleceń Sama, ale stwierdziłem, że opcje wiersza poleceń maszyny wirtualnej nie są już obsługiwane zgodnie z opisem. (Otrzymałem błąd podczas używania)

Alternatywnie mogłem radykalnie zmniejszyć gradle, dodając następujący wiersz do pliku „gradle.properties”

org.gradle.jvmargs=-Xms512m -Xmx1024m

Od wersji AS w wersji 1.3 plik znajduje się na tym samym poziomie folderu, co „gradle.build”.

Powyższa konfiguracja to „stos pamięci” 512 MB i „sterta pamięci” 1024 MB.

Przetestowałem to na małym projekcie, używając ustawień, w których oba rozmiary pamięci były ustawione na 256 MB. Zgodnie z oczekiwaniami ograniczyło to rozmiary maszyny JVM. We wszystkich moich testach zrestartowałem AS, aby wymusić ponowne uruchomienie maszyny JVM.

Miejmy nadzieję, że uchroni to inne osoby zajmujące się tym problemem przed uzyskaniem odpowiedzi „Zrób sobie lepszy komputer”. :-)

Dilber

SpacemanScott
źródło
Dzięki; to działało dla mnie w AS 1.3! Zaktualizowałem instrukcje w mojej odpowiedzi, aby objąć tę metodę, ponieważ nie znalazłem innych sposobów, aby to zrobić w AS 1.3.
Sam
2

Mam Android Studio 2.1.1 Bro, używam emulatora genymotion. Szybciej, jeśli używasz Androida Marshmallow. A mój Ram ma 4 GB i zainstaluj wtyczkę do genymotion w Android Studio. Zobaczysz dobry wynik, zamiast tracić czas, uruchom android emualtor zajmie to 5 minut. Genymotion 10 do 20 sekund i szybciej, więc polecam ci użycie genymotion.

Nacięcie
źródło
3
Jakby to było darmowe.
Ojonugwa Jude Ochalifu
Genymotion nie działa szybciej. Emulator jest, ale tak, uruchamia się szybciej niż ARM i znacznie szybciej niż emulatory studia Android IntelX86 i X64.
Mahdi-Malv
2

Aby zmniejszyć opóźnienie, polecam następujące kroki

specyfikacje mojego komputera: 2 GB pamięci RAM, procesor: Intel Core2 Duo

najpierw zabij wszystkie procesy w tle, jeśli masz uruchomiony serwer lub bazę danych, możesz je najpierw zatrzymać za pomocą następujących poleceń

usługa sudo apache2 stop

usługa sudo mysql stop

Następnie włącz tryb oszczędzania energii w Android Studio, wybierając plik> tryb oszczędzania energii

Może to wyłączyć proces w tle, a wtedy studio wydaje się działać dobrze

Naveen
źródło
Nie rozumiem, dlaczego musimy włączyćPower Save Mode
Morozov
Morozov, jeśli włączymy tryb oszczędzania energii zabija działalność tło android studiu, więc będzie poprawić jego wydajność
Naveen
tak, tryb oszczędzania energii zatrzymuje ten proces
Naveen,
2

Aby uruchomić środowisko Android na komputerze o niskiej konfiguracji.

  1. Zamknij niepotrzebne karty internetowe w przeglądarce
  2. W przypadku użytkowników programu antywirusowego wyklucz folder kompilacji, który jest generowany automatycznie
  3. Android studio ma domyślnie 1,2 Gb sterty może zmniejszyć się do 512 MB

Pomoc> Edytuj niestandardowe opcje maszyny wirtualnej

studio.vmoptions
 -Xmx512m

Wydajność układów będzie przyspieszona

  1. Dla Gradle jednym z podstawowych komponentów w Android Studio Mkae z pewnością tak jak teraz jest 3.0beta

Poniższe wskazówki mogą wpłynąć na jakość kodu, dlatego należy zachować ostrożność:

  1. Studio zawiera tryb oszczędzania energii, gdy jest włączony, zamyka operacje w tle, takie jak lint, kompletacje kodu i tak dalej.

  2. W razie potrzeby możesz ręcznie uruchomić sprawdzanie kłaczków ./gradlew lint

  3. Większość z nich używa emulatorów Androida średnio, które zużywają 2 GB pamięci RAM, więc jeśli to możliwe, użyj rzeczywistego urządzenia z Androidem, co zmniejszy obciążenie zasobów komputera. Alternatywnie możesz zmniejszyć ilość pamięci RAM emulatora i automatycznie zmniejszy to zużycie pamięci wirtualnej na komputerze. można to znaleźć w konfiguracji urządzenia wirtualnego i ustawieniach zaawansowanych.

  4. Tryb offline Gradle to funkcja dla użytkowników z ograniczoną przepustowością, która umożliwia wyłączenie pobierania zależności kompilacji. Zmniejszy to działanie w tle, co pomoże zwiększyć wydajność studia Android.

  5. Studio Android oferuje optymalizację, aby kompilować wiele modułów równolegle. Na komputerach z małą ilością pamięci RAM ta funkcja prawdopodobnie będzie miała negatywny wpływ na wydajność. Możesz go wyłączyć w oknie dialogowym ustawień kompilatora .

Smit Patel
źródło
„studio.vmoptions -Xmx512m” zabiło dla mnie studio Android. Nie będzie już otwierać komunikatu „Nie udało się utworzyć maszyny JVM: kod błędu -1”. Jak mogę cofnąć tę zmianę?
MeatPopsicle,
1
Na wypadek, gdyby ktokolwiek wpadł w tę samą pułapkę. Możesz to naprawić, przechodząc do C: \ Users \ <nazwa użytkownika> \ .AndroidStudio <wersja> \ config i szukając pliku .vmoptions. Jeśli pasuje do właśnie dodanej konfiguracji, prawdopodobnie możesz ją bezpiecznie usunąć
MeatPopsicle
1

Spróbuj przełączyć JVM na eclipse openj9. Będzie zużywał znacznie mniej pamięci. Zamieniłem go i ciągle używa 600Mb.

Vijay Britto
źródło
1

Nie wiem, czy to rozwiązanie, ale Invalidate Cache and Restartrozwiązałem ten problem w moim przypadku. Obecnie używam Android Studio 3.6

Aziz
źródło
0

Otwórz poniżej ścieżkę wzmianki w systemie i usuń wszystkie swoje avd (urządzenia wirtualne: emulator)

C: \ Users {nazwa użytkownika} .android \ avd

Uwaga: - Usunięcie emulatora tylko ze studia Android nie spowoduje usunięcia wszystkich miejsc zajętych przez ich avd. Więc usuń wszystkie avd z powyższej ścieżki, a następnie utwórz nowy emulator, jeśli potrzebujesz.

Narender Gusain
źródło