Android студія займає занадто багато пам’яті


175

У мене було встановлено Android Studio 1.0 RC 2. У мене встановлено 4 Гб оперативної пам’яті, але після запуску Android Studio та запуску Android-емулятора понад 90% фізичної пам’яті було використано лише цими двома. Чи є спосіб зменшити використання пам'яті? Через цю проблему з пам'яттю я не можу одночасно відкривати інші програми. введіть тут опис зображення


17
Використання Eclipse або Android Studio та емулятора на машині розробки Windows 4 Гб буде дуже болісно. Я настійно рекомендую або оновити оперативну пам’ять на вашій розробці (8 Гб або більше), протестувати на пристрої (замість емулятора), або пропустити IDE і зробити свою розробку за допомогою простого редактора та інструментів командного рядка.
CommonsWare

2
Я думаю, ви використовуєте Windows, судячи з екрана, який ви опублікували. Але яка версія Windows? Крім того, оскільки Android Studio ще знаходиться в зародковому стані, з вами виникне багато проблем. Якщо вам не потрібна підтримка Gradle, ви завжди можете спробувати Eclipse - IDE був перевірений і перевірений протягом багатьох років, тому він є досить солідним для середовища розробки - з оперативною пам'яттю.
ChuongPham

1
@CommonsWare Чи знаєте ви, чи те саме стосується Linux ПК? Заздалегідь спасибі.
Олександр Куляхтін

4
@PPD: у Windows вимкніть непотрібні сервіси через Адміністративні інструменти | Варіант послуг . Перейдіть msconfigта вимкніть непотрібні програми на вкладці " Запуск" . Вимкніть непотрібні візуальні ефекти в Windows. Коли ви запускаєте емулятор Android, увімкніть опцію Використовувати хост-графічний процесор, особливо якщо у вас є потужна графічна карта. У мене є ПК для розробки 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 в андроїд-студії та використання зовнішньої програми для обробки VCS дуже допомогли. Ви можете вимкнути VCS, перейшовши до Файл -> Налаштування -> Плагіни та відключіть наступне:

  • Інтеграція CVS
  • Інтеграція Git
  • GitHub
  • Google Cloud Testing
  • Google Cloud Tools Core
  • Інструменти Google для Android Studio Studio
  • hg4idea
  • Підривна інтеграція
  • Меркуріальна інтеграція
  • TestNG-J

18
ні, дуже невелика зміна.
кривар

5
Величезна різниця, коли ваш проект налаштовано з будь-яким сховищем, наприклад, svn чи github. мій час очікування виконання скоротився з> 3 хв до <1 хв. Велике спасибі за чудову допомогу.
Ер. Kaushik Kajavadara

4
Це, здається, працює і має велику зміну, хоча я продовжував включати "Git Integration". В ідеалі Android Studio має мати ці налаштування за замовчуванням.
Містер-ІДЕ

3
Я використовував цей метод для міні-корпусу HP 6005 з 4 ГБ оперативної пам’яті та amd X4 Cpu. після deactived всіх цих плагінів моя андроїд-студія відкрилася дуже швидко, я не можу повірити. перед тим, як запустити андроїд-студію, потрібно 15 секунд, але тепер вона з’являється за 1 секунду. дякую
AN

2
Також відключити Mercurial Integration, TestNG-J;
xiaoweiz

108

У моєму випадку було два основні джерела вивільнення пам'яті: IDE та Gradle:

Android Studio (до 1,5 Гб)

JVM 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 binary"), використовуючи 1460,5 Мб пам'яті

Це можна виправити, змінивши параметри JVM Gradle. Це можна зробити на основі кожного користувача, відредагувавши gradle.properties:

  1. Відкрийте gradle.propertiesфайл, створивши його, якщо його не існує:
    • Windows: %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 за допомогою файлу-> Налаштування-> Плагіни та відключіть такі речі:
    1.CVS Integration
    2.Git Integration
    3.GitHub
    4.Google Cloud Tools для Android Studio
    5.Subversion Integration

Я також використовую Android Studio з основною пам'яттю, встановленою 4 ГБ, але після цих тверджень дійсно підвищується моя продуктивність Android Studio.


1
Я відключив усі речі у списку. І все-таки він використовує те ж саме близько 1,5 ГБ оперативної пам’яті
Аршад

@ arshadkazmi42 скажіть мені конфігурацію вашого ПК
KulArtist

i3, 4 Гб оперативної пам’яті, 500 Гб жорсткий диск
Аршад

13
Я думаю, що це повна дурниця говорити про те, що "i3" є причиною збоїв у майстерності програмного забезпечення!
XMight

1
Мій процесор i3 хоче оскаржити ваш i3, чи хочете ви прийняти це завдання? Ніхто не скаже, що i3 спричиняє повільніше або займає високу пам'ять ...
Сабір Хоссайн

28

Android Studio нещодавно опублікував офіційний посібник для машин із низькою пам’яттю: Guide

Якщо ви використовуєте Android Studio на машині з меншими за рекомендовані технічні характеристики (див. Системні вимоги), ви можете налаштувати IDE для підвищення продуктивності на вашому пристрої таким чином:

  • Зменшіть максимальний розмір купи, доступний для Android Studio : Зменшіть максимальний розмір купи для Android Studio до 512 Мб.

  • Оновіть Gradle та плагін Android для Gradle : оновіть до останніх версій Gradle та плагін Android для Gradle, щоб переконатися, що ви використовуєте останні покращення продуктивності.

  • Увімкнути режим економії енергії : увімкнення режиму енергозбереження вимикає ряд фонових операцій, що вимагають великої пам'яті та батареї, включаючи підсвічування помилок і перевірки під час руху, заповнення коду автозапуску та автоматичну поступову компіляцію фону. Щоб увімкнути режим економії енергії, натисніть Файл> Режим економії енергії.

  • Вимкнути непотрібні перевірки ворсинок : Щоб змінити, які перевірки ворсинок працює на вашому коді Android Studio, виконайте наступне: Клацніть Файл> Налаштування (на Mac, Android Studio> Налаштування), щоб відкрити діалогове вікно "Налаштування". На лівій панелі розгорніть розділ "Редактор". і натисніть «Огляди». Установіть прапорці, щоб вибрати або зняти прапорці на волокна відповідно до вашого проекту. Клацніть Застосувати або ОК, щоб зберегти зміни.

  • Налагодження на фізичному пристрої : Налагодження на емуляторі використовує більше пам’яті, ніж налагодження на фізичному пристрої, тому ви можете покращити загальну продуктивність для Android Studio шляхом налагодження на фізичному пристрої.

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

  • Зменшіть максимальний розмір купи, доступний для складання файлів DEX : Встановіть javaMaxHeapSize для складання файлів DEX на 200м. Для отримання додаткової інформації див. Поліпшення строків збирання шляхом налаштування ресурсів DEX .

  • Не вмикайте паралельну компіляцію : Android Studio може збирати незалежні модулі паралельно, але якщо у вас система з низькою пам’яттю, ви не повинні включати цю функцію. Щоб перевірити це налаштування, виконайте наступне: Клацніть Файл> Налаштування (на Mac, Android Studio> Налаштування), щоб відкрити діалогове вікно налаштувань. На лівій панелі розгорніть збірку, виконання, розгортання та натисніть Компілятор. Переконайтесь, що параметр "Скомпілювати незалежні модулі паралельно" не встановлено. Якщо ви внесли зміни, натисніть Застосувати або ОК, щоб зміни вступили в силу.

  • Увімкніть офлайн-режим для Gradle : Якщо у вас обмежена пропускна здатність, увімкніть офлайн-режим, щоб не допустити Gradle до завантаження відсутніх залежностей під час збирання. Коли в режимі офлайн увімкнено, Gradle видасть збій у збірці, якщо вам не вистачає залежностей, замість спроби завантажити їх. Щоб увімкнути офлайн-режим, виконайте такі дії:

    • Клацніть Файл> Налаштування (на Mac, Android Studio> Налаштування), щоб відкрити діалогове вікно налаштувань.

    • На лівій панелі розгорніть програму Build, Execution, Deployment та натисніть Gradle.

    • У налаштуваннях Global Gradle встановіть прапорець Автономна робота.

    • Натисніть Застосувати або ОК, щоб зміни вступили в силу.


16

Я використав усі рекомендації Сема вище, але виявив, що параметри командного рядка VM більше не підтримуються, як описано. (Під час використання я отримав помилку)

Як альтернатива, мені вдалося різко зменшити gradle, додавши наступний рядок у файл "gradle.properties"

org.gradle.jvmargs=-Xms512m -Xmx1024m

Станом на AS ver 1.3, файл знаходиться в тому ж рівні папки, що і "gradle.build".

Вищеописана конфігурація - це "стек пам'яті" 512 мег і "купа пам'яті" 1024 мега.

Я перевірив це на невеликому проекті, використовуючи параметри, де обидва розміри пам'яті були встановлені на 256 мег. Це обмежило розміри JVM, як очікувалося. У всіх своїх тестах я перезапустив AS, щоб змусити JVM перезапуститись.

Сподіваємось, це допоможе врятувати інших, хто займається цією проблемою, отримати відповіді "Набути собі кращий комп'ютер". :-)

Ділбер


Дякую; це працювало для мене в AS 1.3! Я оновив інструкції у своїй відповіді, що стосуються цього методу, оскільки я не знайшов інших способів зробити це в AS 1.3.
Сем,

2

У мене Android Studio 2.1.1 Bro використовувати емулятор genymotion Це швидше, якщо використовувати Android Marshmallow. І My Ram Is 4gb.A Install Plugin for genymotion в Android Studio. Ви побачите хороший результат, замість того, щоб витрачати час на запуск андроїд-емулятора, знадобиться 5 хв. Швидкість руху від 10 до 20 секунд і швидше, тому я рекомендував вам використовувати genymotion.


3
Начебто безкоштовно.
Ojonugwa Jude Ochalifu

Генімоція не швидша у виконанні. Емулятор є, але так, він починає швидше, ніж ARM і дуже швидше, ніж емулятори Android Studio Android X86 і X64.
Махді-Малв

2

Щоб зменшити відставання, я рекомендую наступні кроки

мої ПК: 2 ГБ оперативної пам'яті, процесор: Intel Core2 Duo

спочатку вбийте весь фоновий процес, якщо у вас працює сервер або база даних, ви можете спочатку зупинити їх, виконавши наступні команди

Служба судо апаш2 серп

Служба судо mysql зупинка

Потім увімкніть режим енергозбереження в андроїд-студії за допомогою файлу> режим енергозбереження

Це може відключити фоновий процес, і тоді студія, здається, працює добре


Не розумію, навіщо нам це потрібноPower Save Mode
Морозов

Морозов, якщо ми включимо режим енергозбереження, він вбиває фонову діяльність андроїд-студії, тож покращить її продуктивність
Naveen

так, режим енергозбереження зупиняє цей процес
Naveen

2

Щоб запустити Android на навколишньому середовищі на машині низької конфігурації

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

Довідка> Редагувати власні параметри VM

studio.vmoptions
 -Xmx512m

Макети виконання будуть пришвидшеними

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

Нижче підказки можуть вплинути на якість коду, тому будь ласка, використовуйте з обережністю:

  1. Студія містить безпечний режим живлення, якщо увімкнено, вона закриє фонові операції, що ворсуються, доповнюють код тощо.

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

  3. Більшість користувачів використовують емулятори Android в середньому, вони споживають 2 Гб оперативної пам’яті, тому, якщо можливо, використовувати фактичні пристрої Android, це зменшить завантаження ресурсів на вашому комп’ютері. Крім того, ви можете зменшити оперативну пам'ять емулятора, і це автоматично зменшить споживання віртуальної пам'яті на вашому комп’ютері. ви можете знайти це в налаштуваннях віртуального пристрою та налаштуваннях заздалегідь.

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

  5. Android студія пропонує оптимізацію для збирання декількох модулів паралельно. На машинах з низькою оперативною пам'яттю ця функція, ймовірно, негативно вплине на продуктивність. Ви можете відключити його в діалоговому вікні налаштування компілятора .


"studio.vmoptions -Xmx512m" убив студію Android для мене. Більше не буде відкрито "Не вдалося створити JVM: код помилки -1". Як я можу змінити цю зміну?
MeatPopsicle

1
У випадку, якщо хтось інший потрапить у ту саму пастку. Ви можете виправити це, перейшовши в C: \ Users \ <ім'я користувача> \ .AndroidStudio <version> \ config та шукаючи файл .vmoptions. Якщо він відповідає конфігурації, яку ви тільки що додали, ви, ймовірно, можете її видалити
MeatPopsicle


1

Спробуйте переключити свій JVM на затемнення openj9. Це буде використовувати набагато менше пам'яті. Я постійно мінявся ним і використовуючи 600Mb постійно.


1

Я не знаю, чи це рішення, але Invalidate Cache and Restartвирішив цю проблему в моєму випадку. Зараз я використовую Android Studio 3.6


0

Відкрийте нижче шлях згадування у вашій системі та видаліть усі ваші avd's (Віртуальні пристрої: Емулятор)

C: \ Користувачі {Ім'я користувача} .android \ avd

Примітка: - Видалення емулятора тільки з андроїд-студії не видалить усі пробіли, які захоплює їхній авд. Тож видаліть усі avd з вище заданого шляху та створіть новий емулятор, якщо вам це потрібно.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.