Eclipse использует 100% CPU случайным образом - PullRequest
32 голосов
/ 21 апреля 2010

Мое затмение иногда начинает очень спонтанно использовать 100% моего процессора. Я не могу понять, почему он так сильно использует процессор. Не выполняется фоновая задача, такая как «создание рабочей области».

Через некоторое время загрузка процессора падает до 0, и все становится нормально.

Не могу найти информацию, связанную с проблемой, в файле workspace/.metadata/.log.

Есть ли у кого-нибудь совет, как я могу выяснить, какая часть затмения использует процессор так сильно? Есть ли способ получить дамп потока Eclipse? kill -3 в процессе затмения ничего не делает.

Версия Eclipse: Galileo JavaEE
Операционная система: Linux 2.6.31

Ответы [ 6 ]

12 голосов
/ 21 апреля 2010

Звучит как сборщик мусора

Вы можете попробовать изменить настройки в вашем eclipse.ini, возможно, с более высоким значением Xmx

--launcher.XXMaxPermSize
256m
-vmargs
-Xms256m
-Xmx1024m
-XX:PermSize=64m
-Xss1M
-server
-XX:+DoEscapeAnalysis
-XX:+UseConcMarkSweepGC
8 голосов
/ 21 апреля 2010

Вы можете использовать visualvm для профилирования затмения, получения дампа кучи или дампа потоков, просмотра запущенных потоков и т. Д.

4 голосов
/ 26 декабря 2012

Если у кого-то еще возникла эта проблема, я исправил ее для себя. Отключите опцию «Auto build project». Это должно удалить большую часть процессора, используемого Eclipse.

2 голосов
/ 24 октября 2017

Eclipse загружает и выгружает информацию из памяти всякий раз, когда это требуется.Если у вас большое рабочее пространство, и вы работаете с несколькими проектами, а также ваше затмение настроено на использование небольшого количества памяти, это нормально.Кто-то предложил выше изменить значения xmx и xms, чтобы ваше затмение использовало больше памяти (если у вас есть), я предлагаю вам установить одинаковое значение для них обоих.Например, -Xms4048m и -Xmx4048m (или более) в файле eclipse.ini.Таким образом, ваша система будет пытаться использовать это пространство, как только вы запустите IDE, и сборщик мусора (GC) займет меньше времени для обработки данных.

2 голосов
/ 24 октября 2017

Для моей установки я заметил, что индикатор состояния кучи («Окно VIA»> «Настройки» «Показать состояние кучи» в разделе «Общие») отображает меньше максимальной кучи, чем указано в eclipse.ini (параметр -Xmx). Индикатор состояния бегал, показывая, что сборщик мусора изо всех сил пытался держать память низкой.

Увеличение начального / минимального размера кучи (параметр -Xms), по-видимому, привело к тому, что Eclipse / Java прекратили попытки управления памятью.

1 голос
/ 15 июля 2017

Просто добавьте следующую строку к вашему vmargs в eclipse.ini

-XX:+DisableExplicitGC

Это предотвращает перегрузку ГХ (причина 100% использования потоков ЦП)

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

Было бы неплохо, если бы Eclipse профилировал оборудование и сам конфигурировался, чтобы предотвратить это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...