Как мне предотвратить частую приостановку eclipse?

#java #eclipse #workspace

Вопрос:

В настоящее время я пытаюсь написать новую программу, но по какой-то причине мое затмение приостанавливается каждые 30 секунд или около того. Я думаю, что это как-то связано с новым кодом, который я писал.

Я использую eclipse 21-03, мой сервер Wildfly версии 21.0.2, и я использую OpenJDK-11.

Я уже пытался дать eclipse больше оперативной памяти, но это не помогло. Вы можете увидеть прикрепленную фотографию моего диспетчера задач. Eclipse все еще использует так много оперативной памяти, хотя я остановил сервер, а также программу. Что мне нужно сделать, чтобы приостановить выполнение задачи рабочей области, но не остановить запуск eclipse?

изображение

Комментарии:

1. Что вы подразумеваете под «приостановкой»? Что вы делаете и что происходит потом?

2. Я пытаюсь открыть класс java для редактирования своего кода. Я делаю это, пока другие программы не запущены. Eclipse либо открывает класс целую вечность, либо завершает работу из-за того, что запрос занял слишком много времени.

3. @Jana Это может быть вызвано установленным вами плагином. Что вы получаете с Eclipse 2021-06 без дополнительных плагинов?

4. Я установил Eclipse 2021-06, но если я импортирую свои проекты, появляется та же самая проблема. Возможно ли, что я использую неправильную версию java? Я запустил и отредактировал код на виртуальной машине, и это сработало.

Ответ №1:

1,5 ГБ-это вполне нормально для Eclipse. Грустно. БАРАНЬЯ свинья.

Есть две возможные причины, по которым Eclipse приостанавливает код:

  1. Вы установили точки останова, которые являются ручными инструкциями, указывающими Eclipse остановиться в режиме отладки. Это маленькие синие точки на номерах строк в окне кода.
  2. Некоторые исключения проходят весь путь трассировки стека без обработки. Если это произойдет в режиме отладки, Eclipse остановится там, где возникнет исключение, и сообщит вам причину.

Решения:

  1. Улучшите свой код, чтобы исключения не выпадали. Используйте try-catch
  2. Удалите установленные вами точки останова
  3. Запускайте приложение не в режиме отладки, а в обычном режиме запуска. Таким образом, отладчик не подключается и не будет прерывать «нормальный» поток.

Пример прерывания исключения в режиме отладки:

  • Всплывающее окно показывает, что x это значение равно нулю, поэтому доступ к x.length() приведет NullPointerException к появлению (NPE), который не пойман, но вылетает в Thread
  • В правом нижнем углу в представлении Отладка показано, где и почему остановлено выполнение.

Вот как выглядит остановка, когда отладчик попадает в неучтенное исключение

Комментарии:

1. Но 1,5 ГБ-это ненормально, если код не запущен, не так ли? Eclipse уже перестает работать, если я просто попытаюсь открыть простой класс java. Я все еще старался удалить все точки останова и перехватывать все исключения, которые могли возникнуть, но это не решило проблему.

2. Приведите нам пример скриншота, на котором показано, когда Eclipse останавливается, и что написано в «Представлении отладки», т. е. маленьком окне с зеленой ошибкой на нем (Меню: Окно -> Показать представление ->> Отладка). И, возможно, тоже наведите курсор на отмеченную строку и покажите нам некоторые детали отладки, которые появляются при наведении курсора мыши на переменные.

3. И если код запущен, это обычно не влияет на ресурсы Eclipse, так как большая часть действий выполняется в JVM, запущенной (извне) для запуска приложения.

4. Один из способов узнать, ваш ли это код или eclipse, — открыть свой проект в IntelliJ и VCCode или в другой среде разработки по вашему выбору.

5. Нет, 1,5 ГБ-это ненормально. На скриншоте показано довольно старое затмение, и в прошлом, например, Maven вызывал высокое потребление памяти. Это также может быть вызвано дополнительно установленным плагином.