Android-студия занимает слишком много памяти

175

Я установил Android Studio 1.0 RC 2. У меня установлено 4 ГБ ОЗУ, но после запуска Android Studio и запуска эмулятора Android более 90% физической памяти было использовано только этими двумя. Есть ли способ уменьшить использование памяти? Из-за этой проблемы с памятью я не могу одновременно открыть другие приложения. введите описание изображения здесь

PPD
источник
17
Использование Eclipse или Android Studio и эмулятора на компьютере под управлением Windows объемом 4 ГБ будет очень болезненным. Я настоятельно рекомендую вам либо обновить ОЗУ вашей машины для разработки (8 ГБ или более), либо протестировать на устройстве (вместо эмулятора), либо пропустить IDE и выполнять разработку с помощью простого редактора и инструментов командной строки.
CommonsWare
2
Я предполагаю, что вы используете Windows, судя по скриншоту, который вы разместили. Но какая версия Windows? Кроме того, поскольку Android Studio все еще находится в зачаточном состоянии, у вас возникнет много проблем. Если вам не нужна поддержка Gradle, вы всегда можете попробовать Eclipse - IDE была опробована и проверена годами, так что она достаточно надежна для среды разработки - с точки зрения оперативной памяти.
ChuongPham
1
@CommonsWare Знаете ли вы то же самое для Linux PC? Заранее спасибо.
Александр Куляхтин
4
@PPD: в Windows отключите ненужные сервисы через Администрирование | Вариант услуг . Перейдите на вкладку « Автозагрузка » msconfigи отключите ненужные приложения . Отключите ненужные визуальные эффекты в Windows. Когда вы запускаете эмулятор Android, включите опцию Use Host GPU, особенно если у вас мощная графическая карта. У меня есть ПК для разработки под Windows 7, и я использую только 2-2,5 ГБ ОЗУ одновременно, включая: Windows 7, Eclipse, Mozilla Firefox (без надстроек) и шаги настройки Windows, которые я только что упомянул. Я также использую Fedora, и она использует даже меньше памяти, чем Windows.
ChuongPham
3
Просто замечание: я вижу, что у вас открыты некоторые вкладки Google Chrome. Вы можете обнаружить, что Firefox использует немного меньше оперативной памяти, поскольку он не использует процесс для каждой вкладки браузера.
Сэм

Ответы:

224

В настоящее время я использую Android Studio на компьютере под управлением Windows 8.1 с 6 гигабайтами оперативной памяти.

Я обнаружил, что отключение VCS в Android Studio и использование внешней программы для управления VCS очень помогли. Вы можете отключить VCS, зайдя в Файл -> Настройки -> Плагины и отключив следующее:

  • Интеграция CVS
  • Интеграция с Git
  • GitHub
  • Google Cloud Testing
  • Google Cloud Tools Core
  • Облачные инструменты Google для Android Studio
  • hg4idea
  • Интеграция Subversion
  • Mercurial Integration
  • TestNG-J,
jds17
источник
18
нет, очень маленькая перемена
Кривар
5
Огромная разница, когда ваш проект настроен с любым хранилищем, таким как svn или github. мое время ожидания выполнения уменьшилось с> 3 минут до <1 минуты. Большое спасибо за удивительную помощь.
Э-э Kaushik Kajavadara
4
Кажется, это работает и имеет большое значение, хотя я включил «Интеграцию Git». В идеале Android Studio должен иметь эти настройки по умолчанию.
Mr-IDE
3
Я использовал этот метод для мини-корпуса HP 6005 с 4 ГБ оперативной памяти и процессором amd X4. После отключения всех этих плагинов моя Android-студия открылась очень-очень быстро, я не могу поверить. перед запуском андроид студии берут 15 секунд, но теперь она появляется за 1 секунду. спасибо
AN
2
Также отключите Mercurial Integration, TestNG-J;
xiaoweiz
108

В моем случае было два основных источника прерывания памяти: IDE и Gradle:

Android Studio (до 1,5 ГБ)

В виртуальной среде IDE настроен максимальный размер кучи. Вы можете увидеть это в правом нижнем углу основного интерфейса:

Android Studio показывает максимальный размер кучи 725M

Вы можете уменьшить это путем редактирования параметров , связанных с памятью в в .vmoptionsфайле . Например, я изменил свой максимальный размер кучи на 512 МБ:

-Xmx512m

К сожалению, я обнаружил, что понижение этого значения увеличивает частоту временного зависания Android Studio, возможно, для сбора мусора.

Gradle (до 1,5 ГБ)

Gradle также может использовать много оперативной памяти после некоторой разработки. Windows просто показывает это как Java(TM) Platform SE Binary:

Диспетчер задач Windows 8.1, показывающий «Java (двоичный файл TM Platform SE») с использованием 1460,5 МБ памяти

Вы можете исправить это, изменив параметры Gradle JVM. Вы можете сделать это для каждого пользователя, отредактировав gradle.properties:

  1. Откройте gradle.propertiesфайл, создав его, если он не существует:
    • Окна: %USERPROFILE%\.gradle\gradle.properties
    • Linux / Mac: ~/.gradle/gradle.properties
  2. Обновите org.gradle.jvmargsсвойство, создав его при необходимости. Я установил мой на это:

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

Я не заметил никакой разницы в производительности сборки для моего небольшого проекта с максимальным размером кучи, равным 256 МБ ( -Xmx256m).

Обратите внимание, что вам может потребоваться перезапустить Android Studio, чтобы старый процесс Gradle был убит; в противном случае вы можете одновременно запустить оба.

Эмулятор

Что касается эмулятора, занимающего много вашей оперативной памяти, то на скриншоте видно, что он занимает около 800 МБ. Вы можете выбрать объем ОЗУ для эмулятора:

  1. Редактировать AVD
  2. Нажмите Показать дополнительные настройки
  3. Уменьшить стоимость оперативной памяти

Конфигурация ОЗУ виртуального устройства Android

Сэм
источник
Это в сочетании с ответом SoJexy значительно повысило производительность моего компьютера.
Джош Ларсон
Эти советы были спасением жизни! Также есть возможность изменить размер кучи, используемой компилятором dex, что еще больше уменьшает использование памяти. Подробности: techzog.com/development/android-studio-high-ram-usage
Варун
1
В .vmoptionsфайле говорится: *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/configurationОднако, поскольку в моей системе нет файла, специфичного для пользователя, и веб-сайт не объясняет никаких других местоположений такого файла, я пойду с этим решением. Ох и: MaxPermSize в какой-то момент устареет. Об этом всегда предупреждает меня при запуске IDE в терминале.
Зельфир Кальцталь
1
@Zelphir, какую версию ОС и Android Studio вы используете? Я использую Windows, и в инструкциях говорится, что файл находится под %USERPROFILE%, что зависит от пользователя. Я не очень хорошо разбираюсь в Linux, но в инструкциях Mac и Linux также сказано, что файл находится в папке ~, которая, я думаю, является домашним каталогом пользователя? Если файла нет, возможно, вы можете просто создать его; упомянутая выше документация гласит Instead, you can customize the attributes by creating your own .properties or .vmoptions files in the following directories.. Не могли бы вы дать мне знать, если это работает, чтобы я мог обновить ответ?
Сэм
3
Потрясающие предложения! Для Gradle я решил проблему «в масштабе пользователя» путем редактирования ~/.gradle/gradle.properties.
Андреа Лаззаротто
51

Вы можете ускорить работу Eclipse или Android Studio, просто следуйте этим инструкциям:

  • Использовать / открывать один проект за раз
  • очищать проект после запуска приложения в эмуляторе каждый раз
  • использовать мобильное / внешнее устройство вместо эмулятора
  • не закрывайте эмулятор после однократного использования, используйте один и тот же эмулятор для запуска приложения каждый раз
  • Отключите VCS, используя File-> Settings-> Plugins, и отключите следующие вещи:
    1. Интеграция с
    CVS 2. Интеграция с Git
    3.GitHub
    4. Инструменты Google Cloud для Android Studio
    5. Интеграция с Subversion

Я также использую Android Studio с установленной основной памятью объемом 4 ГБ, но следующие заявления действительно повышают производительность моей Android Studio.

KulArtist
источник
1
Я отключил все вещи в списке. Тем не менее он использует тот же вокруг 1.5GB барана
Аршад
@ arshadkazmi42 скажите мне конфигурацию вашего ПК
KulArtist
i3, 4 ГБ ОЗУ, 500 ГБ HDD
Arshad
13
Я думаю, что это полная ерунда, чтобы сказать, что «i3» является причиной сбоев в мастерстве программного обеспечения!
XMight
1
Мой процессор i3 хочет бросить вызов вашему> i3, вы хотите принять этот вызов? Никто не скажет, что i3 является причиной более медленной или
Сабир Хоссейн
28

Android Studio недавно опубликовала официальное руководство для машин с низким объемом памяти: Руководство

Если вы используете Android Studio на компьютере с характеристиками, меньшими, чем рекомендуемые (см. Системные требования), вы можете настроить IDE для повышения производительности на своем компьютере следующим образом:

  • Уменьшите максимальный размер кучи, доступный для Android Studio : уменьшите максимальный размер кучи для Android Studio до 512 МБ.

  • Обновите Gradle и плагин Android для Gradle : обновите до последних версий Gradle и плагин Android для Gradle, чтобы убедиться, что вы используете последние улучшения производительности.

  • Включить режим энергосбережения : включение режима энергосбережения отключает ряд фоновых операций с большим объемом памяти и батареи, включая выделение ошибок и проверки на лету, автозаполнение кода и автоматическую добавочную фоновую компиляцию. Чтобы включить режим энергосбережения, выберите «Файл»> «Режим энергосбережения».

  • Отключите ненужные проверки ворса . Чтобы изменить, какие проверки ворса выполняются в Android Studio, выполните следующие действия. Нажмите «Файл»> «Настройки» (на Mac, Android Studio> «Настройки»), чтобы открыть диалоговое окно «Настройки». На левой панели разверните раздел «Редактор». и нажмите Инспекции. Установите флажки, чтобы выбрать или отменить выбор проверок ворса в соответствии с вашим проектом. Нажмите Применить или OK, чтобы сохранить изменения.

  • Отладка на физическом устройстве . Отладка на эмуляторе использует больше памяти, чем отладка на физическом устройстве, поэтому вы можете повысить общую производительность Android Studio, отладив на физическом устройстве.

  • Включите только необходимые сервисы Google Play в качестве зависимостей . Включение сервисов Google Play в качестве зависимостей в ваш проект увеличивает необходимый объем памяти. Включайте только необходимые зависимости для улучшения использования памяти и производительности. Для получения дополнительной информации см. Добавление служб Google Play в ваш проект.

  • Уменьшите максимальный размер кучи, доступный для компиляции файла DEX : установите для javaMaxHeapSize для компиляции файла DEX значение 200 м. Для получения дополнительной информации см. Улучшение времени сборки путем настройки ресурсов DEX .

  • Не включайте параллельную компиляцию : Android Studio может компилировать независимые модули параллельно, но если у вас недостаточно системы памяти, вам не следует включать эту функцию. Чтобы проверить этот параметр, выполните следующие действия. Нажмите Файл> Настройки (на Mac, Android Studio> Настройки), чтобы открыть диалоговое окно «Настройки». На левой панели разверните Построение, Выполнение, Развертывание и затем нажмите Компилятор. Убедитесь, что опция «Компилировать независимые модули параллельно» не отмечена. Если вы внесли изменение, нажмите «Применить» или «ОК», чтобы изменения вступили в силу.

  • Включите автономный режим для Gradle : если у вас ограниченный полосовой переключатель, включите автономный режим, чтобы предотвратить попытки Gradle загружать отсутствующие зависимости во время сборки. Когда автономный режим включен, Gradle выдаст ошибку сборки, если у вас отсутствуют какие-либо зависимости, вместо того, чтобы пытаться загрузить их. Чтобы включить автономный режим, выполните следующие действия:

    • Нажмите Файл> Настройки (на Mac, Android Studio> Настройки), чтобы открыть диалоговое окно «Настройки».

    • На левой панели разверните Построение, Выполнение, Развертывание и затем нажмите Gradle.

    • В глобальных настройках Gradle установите флажок «Автономная работа».

    • Нажмите Apply или OK, чтобы изменения вступили в силу.

Androidmeda
источник
16

Я использовал все рекомендации Сэма, приведенные выше, но обнаружил, что параметры командной строки VM больше не поддерживаются, как описано. (Я получил ошибку при использовании)

В качестве альтернативы я смог значительно сократить gradle, добавив следующую строку в файл "gradle.properties"

org.gradle.jvmargs=-Xms512m -Xmx1024m

Начиная с версии AS 1.3 файл находится на том же уровне папок, что и «gradle.build».

Приведенная выше конфигурация представляет собой «стек памяти» в 512 мегабайт и «кучу памяти» в 1024 мегабайт.

Я проверил это на небольшом проекте, используя настройки, где оба объема памяти были установлены на 256 мегабайт. Это ограничило размеры JVM, как и ожидалось. Во всех моих тестах я перезапускал AS, чтобы принудительно перезапустить JVM.

Надеюсь, это спасет других, имеющих дело с этой проблемой, от получения ответов «Получите себе лучший компьютер». :-)

Dilber

SpacemanScott
источник
Спасибо; это работало для меня в AS 1.3! Я обновил инструкции в своем ответе, чтобы охватить этот метод, так как я не нашел других способов сделать это в AS 1.3.
Сэм
2

У меня есть Android Studio 2.1.1 Bro использовать эмулятор genymotion Это быстрее, если использовать Android Marshmallow. И мой Ram 4 ГБ. И установите плагин для genymotion в Android Studio. Вы увидите хороший результат, вместо того, чтобы тратить время на запуск Android Emualtor, это займет 5 минут. Скорость от 10 до 20 секунд и выше.

Ник
источник
3
Как будто это бесплатно.
Оджонугва Джуд Очалифу
Genymotion не быстрее в производительности. Эмулятор есть, но да, он запускается быстрее, чем ARM, и намного быстрее, чем эмуляторы студий IntelX86 и X64.
Махди-
2

Чтобы уменьшить отставание, я бы порекомендовал следующие шаги

характеристики моего ПК: 2 Гб оперативной памяти, процессор: Intel Core2 Duo

сначала убейте все фоновые процессы, если у вас запущен сервер или база данных, вы можете остановить их сначала с помощью следующих команд

остановка службы sudo apache2

sudo service mysql stop

Затем включите режим энергосбережения в Android Studio через файл> режим энергосбережения

Это может отключить фоновый процесс, и тогда студия, кажется, идет хорошо

Нэвин
источник
Не понимаю, почему мы должны включитьPower Save Mode
Морозов
Морозов, если мы включим режим энергосбережения, он убивает фоновую активность андроид студии, поэтому улучшит свою производительность
Naveen
да, режим энергосбережения останавливает этот процесс
Naveen
2

Для запуска среды Android на машине с низкой конфигурацией.

  1. Закройте ненужные веб-вкладки в браузере
  2. Для пользователей антивируса исключите папку сборки, которая создается автоматически
  3. Android-студия имеет 1,2 Гб кучи по умолчанию может уменьшиться до 512 МБ

Справка> Изменить пользовательские параметры виртуальной машины

studio.vmoptions
 -Xmx512m

Исполнение макетов будет ускорено

  1. Для Gradle, одного из основных компонентов в Android-студии, Mkae наверняка, как и сейчас, 3.0beta является самым последним

Приведенные ниже советы могут повлиять на качество кода, поэтому используйте его с осторожностью:

  1. Studio включает Power Safe Mode, когда он включен, он закрывает фоновые операции, которые мешают выполнению кода, и так далее.

  2. Вы можете запустить ручную проверку ворса при необходимости ./gradlew lint

  3. Большинство из них используют эмуляторы Android в среднем, они потребляют 2 ГБ ОЗУ, поэтому, если возможно, используйте реальное устройство Android, это уменьшит нагрузку на ваш компьютер. В качестве альтернативы вы можете уменьшить оперативную память эмулятора, и это автоматически уменьшит потребление виртуальной памяти на вашем компьютере. Вы можете найти это в конфигурации виртуального устройства и дополнительных настройках.

  4. Автономный режим Gradle - это возможность для пользователей с ограниченной пропускной способностью отключать загрузку зависимостей сборки. Это уменьшит фоновую операцию, что поможет повысить производительность Android-студии.

  5. Студия Android предлагает оптимизацию для одновременной компиляции нескольких модулей . На машинах с небольшим объемом ОЗУ эта функция, вероятно, отрицательно повлияет на производительность. Вы можете отключить его в диалоге настроек компилятора .

Смит Патель
источник
"studio.vmoptions -Xmx512m" убил студию Android для меня. Больше не будет открываться «Не удалось создать JVM: код ошибки -1». Как я могу отменить это изменение?
MeatPopsicle
1
На случай, если кто-то еще попадет в ту же ловушку. Вы можете исправить это, перейдя в C: \ Users \ <username> \. AndroidStudio <версия> \ config и ища файл .vmoptions. Если он совпадает с только что добавленным
конфигом,
1

Попробуйте переключить JVM в затмение openj9. Это будет использовать намного меньше памяти. Я поменял его, и он использует 600 МБ постоянно.

Виджай Бритто
источник
1

Я не знаю, если это решение, но Invalidate Cache and Restartрешил эту проблему в моем случае. Я в настоящее время использую Android Studio 3.6

Азиз
источник
0

Откройте нижеприведенный путь к вашей системе и удалите все свои avd (Виртуальные устройства: эмулятор)

C: \ Users {Имя пользователя} .android \ АВД

Примечание: - Удаление Эмулятора только из Android Studio не удалит все пробелы, захваченные их AVD. Так что удалите все avd из указанного выше пути, а затем создайте новый эмулятор, если вам нужно.

Нарендер Гусейн
источник