Android studio использует > 100% CPU в любое время - фоновые процессы не работают


Я заметил, что Android Studio (при запуске) использует более 100% CPU во все времена, даже когда кажется, что нет фоновых процессов, которые работает IDE (индексирование и т. д.). Я мог бы подозревать, что это было что-то конкретное для моей коробки, но некоторые коллеги-разработчики сталкиваются с этим также.

часто использование ЦП находится в высоких 100s или середине 200s (см. скриншоты ниже). Кто-нибудь сталкивался с этим, а? Если да, то существуют ли стратегии или вариантов в IDE для исправления этого интенсивного использования системных ресурсов?

12 64

12 ответов:

вы можете попробовать следующие опции в меню "Файл":

  1. Меню Файл - > Аннулировать Кэш / Перезапуск... - >Аннулировать и перезапустить
  2. включить Режим Энергосбережения нажав на файл - > режим энергосбережения

Экономия Энергии режим только отключить анализ кода и фоновые задачи.

вы можете рассмотреть возможность перехода к файлу > аннулировать кэш / перезапуск Ваш кэш может быть пиная что-то фанки в фоновом режиме

enter image description here

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

в моем случае было что-то неправильное в.каталог git', который вызывал сбой Android studio в бесконечном цикле. Проверка РЕПО снова исправила проблему.

мой совет-проверить журналы Android studio на наличие каких-либо намеков на то, что заставляет его колебаться. Вы также можете запустить его из терминала и проверить Выход Stdout / Stderr.

спасибо Buzzrick (ответил на этой странице, вероятно, выше моего ответа), он упомянул о CVS. Отключение всех фоновых операций VCS, казалось, оказало огромное влияние на высокую загрузку процессора - это было 150%, а теперь это 20%, более или менее.

Я на OS X

перейдите в раздел: Настройки > контроль версий > фон. Теперь в разделе "Фоновые операции" перечислены 6 вариантов. Я отключил первые три параметры которые являются:

выполнить обновление на VCS в фоновом режиме, Выполнить коммит в VCS в фоновом режиме, Выполните проверку на VCS в фоновом режиме.

интересно, что для меня это, казалось, было что-то делать с интеграцией управления версиями.

я исправил это, повторно загрузив свой проект android studio, и когда он спросил о подключении моих ссылок CVS (я не помню точной формулировки), Я просто сказал "игнорировать". После этого он работал плавно, не потянув CPU

Я включил энергосбережение в Android Studio 1.0 это помогло, но это означало, что я отказался от многих функций, которые может предложить Android Studio. Таким образом, я стремился найти лучшее решение, у меня всегда появлялось диалоговое окно и просил меня увеличить размер моей виртуальной машины. По-видимому, как только я увеличил это, я могу отключить энергосбережение и отлично работать с моей студией Android.

вот как это сделать: На Mac OS перейдите к /Applications/Android\ Studio.app/Contents/bin/studio.vmoptions (чтобы открыть содержимое щелкните правой кнопкой мыши на Android Studio приложение > просмотр содержимого) Вы найдете следующие переменные

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

В Windows перейдите к переменным среды и найдите системную переменную с именем _JAVA_OPTIONS

соответственно увеличить эти цифры.

  • Xmx задает максимальный пул выделения памяти для виртуальной машины Java (JVM).
  • Xms задает начальный пул выделения памяти.

т. е. ваш JVM будет запущен с объемом памяти Xms и будет возможность использовать максимум Xmx объем памяти.

на Windows я уменьшил studio64.приоритет процесса exe и установите сродство процесса к половине ядер. Откройте Диспетчер задач, перейдите на вкладку Процессы, щелкните правой кнопкой мыши на process studio64.exe и вы увидите его в меню.

у меня была точно такая же проблема на Linux. Решается путем увеличения объема памяти.

начал смотреть на!--0--> который показывает, какие потоки используют большую часть процессора, для меня есть три потока: 94232,94233,94234. Тогда я делаю jstack <pid> чтобы получить дамп стека android studio и искать 0x17018 (=94232), он оказывается "Gang worker#0 (Parallel CMD Threads)". Все трое. по-видимому, JVM слишком занят, делая GC все время.

также открыл jconsole против моего процесса Android studio и это показывает время ГК "20 minutes"!!! (в нижней части вкладки памяти)

исправить-это изменить студию.vmoptions (или studio64.vmoptions в моем случае), чтобы увеличить -Xmx значение по умолчанию 750м до 1500м. Это достаточно для меня. если у вас слишком много памяти, установите 2g или 4g или 16g..

я попробовал следующую процедуру и Android Studio на Surface Pro 3 ускорился на безумную сумму:

  1. уменьшить amount и memory на Android Virtual Devices у вас есть.
  2. Invalidate Caches/Restart
  3. на Power Save режим
  4. закрыть все unnecessary files that are opened.
  5. уменьшить VM Heap Size до 256.

на Android Studio 2.3 это происходит, когда "Android Monitor" окно открыто (в окне отображаются сообщения Logcat от устройств и эмуляторов), а затем нажмите Ctrl+F ( Cmd+F на Mac), чтобы откройте панель поиска "найти" в этом окне.

Это также может произойти при подключении телефона Samsung к компьютеру через USB, который имеет режим разработчика включен, потому что телефоны Samsung обычно отправляют большое количество отлаживайте текст для Logcat каждую секунду, даже если окно Logcat закрыто.

таким образом, решения для предотвращения 100% использования ЦП являются:

выключите панель поиска "Найти" или полностью скройте окно.

или

отключите телефон Samsung, который отправляет много отладочных сообщений.

или

обновление до Android Studio 3, где эта ошибка не делает случаться.

Я оставил этот вопрос открытым на некоторое время, поскольку коллеги и плакаты Здесь нашли ценность в различных решениях с течением времени. Для себя просто обновление Android Studio решило проблему (после нескольких месяцев, когда ни одно из решений здесь не работало для меня).

в моем случае у меня есть white-listed папка Android-Studio в "Eset Smart Security" и проблема решена!

надеюсь, что это помогает!

Edit:

отключение HIPS на Eset settings был также полезен в моей ситуации!