Как определить, что делает Eclipse медленным? - PullRequest
11 голосов
/ 08 июня 2011

У нас довольно большая кодовая база (более 150 проектов, более 400 000 строк Java-кода, немного Groovy и Gradle-кода, немного Perl-кода, немного XML, много JSP и т. Д.). Мне удалось открыть все эти проекты в Spring Tools Studio 2.6, в которую я также добавил несколько плагинов для Groovy, Perl, Checkstyle, PMD.

И проблема в том, что Eclipse постоянно держит мой процессор занятым. И когда я что-то обновляю, он работает очень медленно, он строится медленно, любые операции пользовательского интерфейса происходят с задержкой.

Кроме того, у меня довольно неплохая 64-битная машина, 8 ГБ оперативной памяти, и я использую 64-битную версию STS, и я даю Eclipse 2 ГБ (но в любом случае она не превышает 1 ГБ кучи).

Итак, мой первый вопрос, есть ли способ определить, что делает его медленным? И удалось ли некоторым из вас, ребята, работать с такими большими базами кода в одном рабочем пространстве?

Я попытался посмотреть на потоки (используя jconsole) JVM, которая запускает Eclipse, но я не могу найти там ничего интересного.

Ответы [ 2 ]

8 голосов
/ 16 декабря 2012

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

Проверьте консоль

Если вы запустите eclipse из командной строки (т. Е. Наберете eclipse), то, если появятся какие-либо исключения, вы увидите их здесь. Иногда медлительность может быть вызвана тем, что плагин постоянно отказывает и выдает много исключений. Иногда это то, что вы можете исправить - иногда вам нужно удалить этот плагин.

Увеличение вашей оперативной памяти

Мы любим GC, но это вызывает медленную смерть. Прелесть GC в том, что вашей программе никогда не хватает памяти - потому что пользователь думает, что она заблокирована, и убивает ее до того, как у нее фактически кончится память. Итак, попробуйте увеличить параметры памяти PermGen и других Eclipse: http://wiki.eclipse.org/FAQ_How_do_I_increase_the_heap_size_available_to_Eclipse%3F

Создать новое рабочее пространство

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

Keep Eclipse Lean

Если я хочу сохранить Eclipse действительно быстрым, я создам установку для одного проекта и добавлю только необходимые плагины. Если вы можете начать с не-EE версии, вы уже гораздо менее раздуты.

Профиль It

VisualVM, входящий в состав Sun JDK (возможно, он уже установлен), можно использовать для просмотра того, какие классы занимают больше всего процессорного времени, а какие объекты занимают память (и что их создало).

Запустите VisualVM, и вы увидите Eclipse, указанный в Приложениях. Щелкните правой кнопкой мыши на записи Eclipse и выберите «Открыть» Eclipse внутри VisualVM. Теперь вы можете прикрепить профилировщик и посмотреть, какие классы используются.

Профилирование замедлит все (на много!), Поэтому вы можете начать с наименьшего возможного примера или быть очень терпеливым. Особенно в начале профилирования это займет много времени, так как «инструменты» классов (внедрение байт-кода для профилирования).

6 голосов
/ 08 июня 2011

Один способ узнать, что делает Eclipse, включив отладку.Здесь есть некоторая информация здесь об отладке построителей eclipse, однако процесс является общим, т.е. вам нужно запустить eclipse из командной строки $ eclipsec –debug> log.txt и включить отладку для некоторых плагиновиспользуя файл .options .Полагаю, вы захотите немного внимательнее взглянуть на операции «обновление» и «сборка».

Другой вариант - использовать инструмент, например, MAT (Memory Analyzer) , YourKit .Я считаю, что YourKit весьма полезен, вы можете, например, включить профилирование процессора в YourKit, а затем выполнить действие в Eclipse, которое, по вашему мнению, занимает много времени.После завершения действия вы можете сделать снимок и провести анализ в YourKit.Предостережение заключается в том, что подключение профилировщика YourKit к Eclipse еще больше замедлит работу Eclipse.

Сказав, что более 150 проектов в одном рабочем пространстве - это много.Если это возможно, вам, вероятно, следует настроить одно рабочее пространство на компонент с остальными плагинами на целевой платформе.Все ваши рабочие пространства могут использовать одну целевую платформу.С более чем 150 проектами одна полная сборка рабочего пространства может занять довольно много времени, так как необходимо сгенерировать большое количество файлов классов, что означает большой объем дискового ввода-вывода, и затмение не может помочь вам там, только SSD может:)

...