Android Studio - Как увеличить размер выделенной кучи

118

Я использую Android Studio уже 3 месяца, и одно из приложений, которые я запускал на нем, стало довольно большим. Использование памяти, указанное в правом нижнем углу программы, говорит о том, что моя выделенная куча максимальна до 494 МБ.

введите описание изображения здесь

Когда я начинаю изменять файлы XML, мое использование памяти быстро достигает этого предела, и среда IDE вылетает с ошибкой Out Of Memory, подобной этой.

введите описание изображения здесь

Я пытался увеличить размер кучи, используя это, но пока никакого эффекта.

Я просмотрел десятки статей и другие вопросы о том, как увеличить размер кучи, но ни один из их ответов не работает. Независимо от того, что я делаю с параметрами VMOPTIONS или IDE, размер кучи никогда не увеличивается. Я считаю, что редактирую правильный файл для VMOPTIONS, потому что, если я намеренно дам ему недопустимую команду, Android Studio пожалуется на это и не запустится.

Я использую Windows 7 - 64 бит и имею 16 ГБ ОЗУ. У кого-нибудь еще была эта проблема с Android Studio? И вы смогли это исправить?

zafrani
источник
См. Ответ @moxi ниже для получения самой последней информации о настройке пользовательских параметров для памяти и запуска JVM в студии stackoverflow.com/a/29057416/396005
Брон Дэвис
1
Обновленная документация по Android Studio: developer.android.com/studio/intro/…
Моррисон Чанг,

Ответы:

136

-------РЕДАКТИРОВАТЬ--------

Android Studio 2.0 и выше, вы можете создать / отредактировать этот файл, зайдя в «Редактировать пользовательские параметры виртуальной машины» в меню «Справка».

------- ОРИГИНАЛЬНЫЙ ОТВЕТ --------

Открыть файл, расположенный по адресу

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

Измените содержимое на

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

Xmxуказывает максимальный пул распределения памяти для виртуальной машины Java (JVM), а Xmsуказывает исходный пул распределения памяти. Ваша JVM будет запущена с Xmsобъемом памяти и сможет использовать максимальный Xmxобъем памяти.

Сохраните studio.vmoptionsфайл и перезапустите Android Studio.

Подробнее в этом посте .

Примечание:

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

Wesley
источник
Это устранило для меня проблему в очень большом проекте, когда Android Studio исчерпывала память через 15 минут при построении карты символов. Я изменил Xms на 1024m и Xmx на 4096, и карта символов была построена менее чем за 30 секунд, так что сборщик мусора, должно быть, долго работал.
RikMaxSpeed
10
Как отметил Лорд Флэш: Начиная с Android Studio 2.0, вы можете создавать / редактировать этот файл, открыв «Редактировать пользовательские параметры виртуальной машины» в меню «Справка».
Лассе Магнуссен
Спасибо, это очень полезно. К вашему сведению, если вы используете 64-битную версию, файл для редактирования называется studio64.exe.vmoptions.
Eselfar
50

Я посмотрел на свои переменные среды и вызвал системную переменную _JAVA_OPTIONSсо значением -Xms256m -Xmx512m, после изменения этого значения -Xms256m -Xmx1024mна максимальный размер кучи увеличился соответственно.

zafrani
источник
9
Системной переменной _JAVA_OPTIONS не было. но я вручную создал новый, и он отлично работает. Thanx.
Ясир Али
Хорошо, это работает! Мне интересно, хорошо ли увеличивать размер кучи ... Я имею в виду, что это работает и, конечно, в некоторых случаях это правильный путь, но всегда ли это правильный путь? Или могут быть решения лучше? Спасибо!
Marino
эта проблема также из-за размера кучи stackoverflow.com/questions/29148374/…
Сагар Деванга,
У меня тоже не сработало, но оказалось, что Android Studio позволила некоторым процессам Java зависать от предыдущих выполнений, и все они, очевидно, все еще использовали много памяти.
alex.magellan
48

Или вы можете перейти в свою android-studio\binпапку и изменить эти значения -Xmx и -Xms в файлах studio.exe.vmoptionsили studio64.exe.vmoptions(в зависимости от того, какая версия у вас запущена).

крокодиловый
источник
2
У меня это не сработало, потому что переменная _JAVA_OPTIONS использовалась как значение по умолчанию.
zafrani
Изменены оба варианта (vmoptions и _JAVA_OPTIONS), но ошибка все еще остается
Рафаэль Ройер-Ривард
Если вы намеренно ввели синтаксическую ошибку в vmoptions, произойдет ли сбой программы при ее перезапуске?
zafrani
Я не уверен, но не думаю, что должен. Кроме того, могу я спросить, зачем вам специально вводить синтаксическую ошибку в vmoptions?
Croc
1
extremegtx.wordpress.com/2015/01/08/…
Бхавеш Хирпара
32

Я увеличил свою память следуя следующей документации Google:

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

По умолчанию Android Studio назначается максимум 750 МБ, я изменил его на 2048 МБ.

Я пробовал то, что описал Google, но для меня единственное, что сработало, - это использовать переменную среды. Опишу, что я сделал:

Сначала я создал каталог, который назвал .AndroidStudioSettings,

  • mkdir .AndroidStudioSettings

Затем я создал файл с именем studio.vmoptions и поместил в этот файл следующее содержимое:

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

Затем я добавил переменные среды STUDIO_VM_OPTIONS в свой файл .profile:

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

Затем я перезагружаю свой .profile:

  • source ~/.profile

И, наконец, открываю Android Studio:

  • open /Applications/Android\ Studio.app

И теперь, как вы можете видеть в строке состояния , у меня для Android Studio доступно более 2000 МБ:

введите описание изображения здесь

Вы можете настроить свои значения в соответствии с вашими потребностями, в моем случае 2048 МБ достаточно.

ОБНОВЛЕНИЕ: Android Studio 2.0 позволяет вам изменять этот файл, зайдя в «Редактировать пользовательские параметры виртуальной машины» из меню «Справка», просто скопируйте и вставьте переменные, которые вы, возможно, захотите сохранить, чтобы увеличить их для новой версии, которая может быть у вас на компьютере.

Moxi
источник
Разве это решение не сработает только при открытии AS из оболочки?
guy.gc
Где вы набираете команды, например, export STUDIO_VM_OPTIONS=/Users/youruser/.AndroidStudioSettings/studio.vmoptionsв терминале?
COYG
31

Вы не должны редактировать какие-либо файлы в каталоге установки IDE. Вместо этого вы можете настроить атрибуты, создав свои собственные файлы .properties или .vmoptions в следующих каталогах. (Раньше это было возможно на некоторых платформах, но для этого требовалось копировать и изменять все содержимое файлов. С последними изменениями эти свойства теперь являются аддитивными, так что вы можете установить только те атрибуты, которые вам нужны, а остальные будет использовать значения по умолчанию из установки IDE).

Примечание. Начиная с Android Studio 2.0, вы можете создавать / редактировать этот файл, открыв файл «Редактировать пользовательские параметры виртуальной машины» в меню «Справка».

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

введите описание изображения здесь

Тобиас
источник
12

Если вы используете MAC BOOK , эта опция доступна в Приложениях -> Щелкните правой кнопкой мыши Android Studio, затем выберите Показать содержимое пакета -> bin .

введите описание изображения здесь

или

открыто -e /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions

Затем увеличьте Xmxзначение

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

Теперь ваша Android Studio будет сверхбыстрой.

Ашокчакраварти Нагараджан
источник
10

Android Studio 3.1 имеет возможность редактировать ваши индивидуальные параметры виртуальной памяти.

Вы можете перейти в Android Studio> Help> Edit Custom VM Options.

введите описание изображения здесь

Затем вставьте приведенный ниже код настроек в файл studio64.exe.vmoptions и сохраните его.

расположение файла: "\ Users \ username \ .AndroidStudio3. ** \ config \"

-Xms128m
-Xmx4096m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=200m
-XX:+UseCompressedOops
Шихаб Уддин
источник
1
Последняя строка неверна - Android Studio 3.2 вылетает при запуске, и она там.
CommonsWare
9

Примечание: теперь это не ответ на пост, но, возможно, это будет полезно для тех, кто его ищет.

Если ничего из этого не работает для вас, попробуйте на Mac это, чтобы узнать, поможет ли вам, в последней версии Android Studio studio.vmoptions находится внутри AndroidStudio.app в папке приложений.

Итак, щелкните правой кнопкой мыши или щелкните правой кнопкой мыши свой AndroidStudio.App, а затем выберите показать содержимое пакета, в котором находится studio.vmoptions:

Содержание / бен / studio.vmoptions

Замените или измените его, и вы получите всю необходимую оперативную память.

введите описание изображения здесь введите описание изображения здесь

С уважением.

Марко Антонио Узкатеги Пескос
источник
Вы не должны изменять этот файл, кроме указанного здесь: tools.android.com/tech-docs/configuration . Для Mac: ~ / Library / Preferences / {FOLDER_NAME} /studio.vmoptions
GaRRaPeTa,
6

Я попробовал использовать _JAVA_OPTIONS, но он все еще не работал.

В конце концов, у меня сработало следующее:

  • Запускаем studio64.exe вместо studio.exe (у меня 64-битная машина).
  • Добавьте / измените следующие значения в "studio64.exe.vmoptions":

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

ExpensiveBelly
источник
1
Сделал то же самое, что и вы, у меня все еще есть ошибки Out of Memory
Рафаэль Ройер-Ривард
Вы обновились до последней версии Android Studio? Я использую Canary Channel и у меня 1.0 RC 4
ExicingBelly
Нет, я был на 0.8.14, но причину утечки памяти нашел. Создание цвета с именем «light_gray» и использование его в файле макета требует бесконечной памяти ... «light_grey» - это нормально.
Рафаэль Ройер-Ривар
6

Есть много ответов, которые сейчас устарели. Желаемый способ изменения размера кучи для Android Studio недавно изменился.

Теперь пользователи должны создать свой собственный файл vmoptions в одном из следующих каталогов;

Окна: %USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptions

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

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

Содержимое вновь созданного *.vmoptionsфайла должно быть:

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

Чтобы увеличить объем оперативной памяти, измените -XmX750mзначение на другое.

Полные инструкции можно найти здесь: http://tools.android.com/tech-docs/configuration

Чарльз Дарем
источник
1
но studio.vmoptionsпо указанному вами пути нет файла . они ниже%AndroidStudioInstallationPath%\bin\studio.exe.vmoptions
Mulgard 04
Это правильный ответ. Другие устарели или не приветствуются.
GaRRaPeTa 08
4

Сначала проверьте, сколько памяти выделено для вашей студии Android, чтобы проверить, что выполните следующие действия:

Файл -> Настройки-> Внешний вид и поведение-> Внешний вид

затем отметьте опцию показа индикатора памяти, как показано ниже, выделенная красным часть введите описание изображения здесь

В моем случае объем оперативной памяти составляет 12 ГБ, поэтому я выделил память для Android Studio 6 ГБ. Для редактирования выполните следующие действия.

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

-Xmx6g

В моем случае я установил его 6 ГБ, потому что мой компьютер составляет 12 ГБ. Вам решать, сколько памяти вы хотите выделить для своей студии Android.

Hoque MD Захидул
источник
3

В Windows 7 файлы конфигурации по- [INSTALL-LOCATION]\binвидимому, игнорируются. Согласно следующей документации Google, файл, который нужно изменить, должен находиться здесь:%USERPROFILE%\.AndroidStudio\studio[64].exe.vmoptions

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

Странно, что такого файла нет при чистой установке Android Studio 1.1 с сайта разработчика. И они находятся в старом (игнорируемом) месте. Как только я скопирую файл ( studio.exe.vmoptionsв моем случае) и изменю его, изменение будет соблюдено.

Однако на этом веселье не заканчивается. Существует верхнее значение, -Xmxкоторое может быть связано с объемом памяти в вашей системе. Я просто увеличил объем памяти моей машины с 4 Гб до 16 Гб и предположил, что могу установить это -Xmxзначение 2048m, но обнаружил, что если бы я установил для него что-то большее, чем 1500m,Android Studio, не запускалась бы тихо без каких-либо указаний на то, почему. У меня скоро будет больше ОЗУ, поэтому будет интересно посмотреть, смогу ли я увеличить значение на этом этапе.

Надеюсь, эта дополнительная информация будет вам полезна. Хотя все вышеперечисленные ответы, несомненно, были верны в какой-то момент (и могут все еще быть в некоторых средах), я обнаружил, что это был единственный подход, который увеличил объем памяти, используемый AS для меня.

Groovee60
источник
2

Откройте studio.vmoptions и измените параметры JVM

studio.vmoptions находится в / Applications / Android \ Studio.app/bin/studio.vmoptions (Mac OS). В моей машине это выглядит как

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

Изменить на

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

И перезапустите Android Studio

См. Больше веб-сайт Android Studio

Бао Ле
источник
2

Я нашел в Windows 7/8 (64-бит), начиная с Android Studio 1.1.0:

[INSTALL_DIR]\bin\studio64.exe.vmoptions использоваться (если он существует), иначе он всегда будет возвращаться к %USERPROFILE%.\AndroidStudio\studio[64].exe.vmoptions

Если вы хотите управлять настройками из %USERPROFILE%.\AndroidStudio\studio[64].exe.vmoptions, просто удалите тот, который находится в каталоге установки.

Джей Сидри
источник
2

Зайдите в Gradle Scripts -> local.properties и вставьте это

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

, если вы хотите изменить его на 512. Надеюсь, это сработает!

Рарес-Михай Челариу
источник
2

вы не должны изменять файл bin / studio.exe.vmoptions, который будет проверен во время применения патча обновления.

Решения здесь http://tools.android.com/tech-docs/configuration

скопируйте этот файл в следующее место, затем измените -Xmx1280m на все, что захотите.

Окна:

%USERPROFILE%\.{FOLDER_NAME}\studio.exe.vmoptions и / или %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 и / или ~/.{FOLDER_NAME}/studio64.vmoptions

~/.{FOLDER_NAME}/idea.properties

landerlyoung
источник
1
Для этого безопаснее использовать собственную функцию IntelliJs / Android Studios: откройте среду IDE и нажмите «Справка» -> «Изменить пользовательские параметры виртуальной машины»
Томми
2

Если бы это Xmsи Xmxпроблема нехватки памяти случалось со мной каждый раз, когда я работал с XML. Я также попытался увеличить эту память, но обнаружил, что потребовалось немного больше времени, чтобы это повторилось снова.

После того, как я был очень разочарован и почти решил преобразовать все мои текущие проекты обратно в Eclipse, чего я не хотел делать, я понял, что было причиной этого, и смог повторять этот сбой и предотвращать его каждый раз.

При редактировании XML в (текстовом представлении) и использовании представления рендеринга «Предварительный просмотр» это каждый раз приводит к потере памяти. Отключив «Предварительный просмотр» и используя вкладку «Дизайн» только для визуализации экрана, я могу использовать Android Studio весь день без сбоев.

Я хотел бы, чтобы это можно было исправить навсегда, потому что было бы очень хорошо использовать рендеринг «Предварительный просмотр» при редактировании XML, однако я рад, что могу продолжать использовать Android Studio.


источник
2

Вот как вы меняете размер кучи в Android Studio 3.6.1.

В Windows в Android Studio:

  1. Выберите Файл -> Настройки (появится всплывающее окно ниже)

Диалог настроек

  1. Выберите внешний вид и поведение
  2. Выберите Системные настройки
  3. Выберите настройки памяти

Затем измените настройки размера кучи IDE на желаемое значение.

На Mac:

  1. Выберите Android Studio
  2. Выберите предпочтения

Появится такое же всплывающее окно. Однако на этот раз на Mac это называется «Настройки».

Выполните те же шаги, что и в версии Android Studio для Windows, чтобы настроить размер кучи, чтобы отображалось диалоговое окно настроек.

Джордж
источник
1

Может помочь тем, у кого возникла эта проблема:

Редактирую studio64.exe.vmoptionsфайл, но сохранить не удалось.

Итак, я открыл этот файл с помощью Notepad ++ в Run as Administratorрежиме, а затем успешно сохранил.

Сайед Аболфазл Фатеми
источник
1

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

Камиль
источник
6
Небольшое объяснение наверняка улучшит ваш ответ.
m02ph3u5
1

ЕСЛИ путем изменения или создания .studio.exe.vmoptionsне работает, попробуйте изменить gradle.propertiesфайл и изменить размер кучи в соответствии с вашими требованиями.

У меня это действительно сработало на моей Windows 7 с 4 Гб ОЗУ и установленной на нем Android Studio 2.2.

Работает правильно, без ошибок и с отображением "Gradle Sync complete"

Dishant J
источник
Мне пришлось добавить Grade.properties, чтобы установить максимальный размер кучи, который использовался при отладке своего приложения. Но я должен спросить, почему установка studio.vmoptions, как указано на странице конфигурации Android Studio, не работает так, как рекламируется? Меня беспокоит то, что я делаю что-то в корне неправильно (но это точно не похоже). (Спасибо) Я разместил подробный вопрос по адресу: stackoverflow.com/questions/40833031/…
JimCzek
1

В Mac OSX можно легко изменить размер кучи, перейдя в первый пункт меню, Android Studio> Настройки> Системные настройки (левое меню)> Параметры памяти и изменив размер кучи в диалоговом окне.

введите описание изображения здесь

Хаммад Хан
источник