Слишком много программных расширений замедляют Затмение?

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

После этого я заметил, что мой IDE не так быстр, чтобы ответить как прежде. Я не уверен, имеет ли это некоторое отношение к размеру нового проекта (который почти в 8 раз больше, чем, что я имел прежде в моем рабочем пространстве), или количество установленных программных расширений.

Так как я ничего не могу сделать о размере проекта, и Рождество прошло, и я не получу новые аппаратные средства в ближайшее время, я задавался вопросом, есть ли что-то, что я могу сделать о программных расширениях (кроме, деинсталлируют их :P).

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

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

Спасибо.

14
задан 11 January 2010 в 08:39
поделиться

7 ответов

Насколько я знаю, плагины не влияют на общую производительность Eclipse, если они не активированы. Чтобы быть уверенным, посмотрите этот вопрос , поэтому вопрос

Вы можете создать некоторую пользовательскую перспективу, в которой вы явно не активируете некоторые плагины, но после использования плагина он останется активным, пока Eclipse открывается.

Начните сначала, оптимизируя Eclipse.ini (см. Это так, чтобы ответить для этого) и посмотрите, остается ли проблема.

8
ответ дан 1 December 2019 в 08:16
поделиться

Eclipse загружает только плагин XML ваших плагинов в начале, поэтому накладные расходы на плагин минимальны. Классы плагина загружаются, когда им нужно ... По крайней мере, если плагины будут правильно запрограммированы. Скорее всего, это не количество плагинов, которые вызывают замедление.

Это может быть размер вашей программы (я не заметил замедление с Java Project с Aproximatly 200 000 Loc).

Или это может быть один или два плохо запрограммированных плагинов. Вы можете попробовать деактивировать один за другим, чтобы найти тот, который вызывает замедление. Затем вы можете решить, сможете ли вы заменить или удалить его.

1
ответ дан 1 December 2019 в 08:16
поделиться

Некоторые плагины загружаются при запуске и позволяют указать, чтобы не загрузить их изначально. Они могут быть загружены по требованию позже.

Откройте настройки и перейдите к General -> Запуск и отключение и отключение . Вы найдете список плагинов, которые помечены автоматически загружены при запуске. Вы можете отключить любой из этих плагинов. Однако, если вы их используете, они будут загружены по требованию.

16
ответ дан 1 December 2019 в 08:16
поделиться

Многие плагины Eclipse добавляют цикловы проверки в процессе сборки. Например, инструменты JBOSS добавляют валидаторы шва, которые потребляют много ресурсов во время сборки. Вы можете отключить некоторые ненужные валидаторы, использующие настройки Eclipse.

2
ответ дан 1 December 2019 в 08:16
поделиться

Это, безусловно, может сделать. Мы использовали Myeclipse (который в основном затмеется с большим количеством плагинов, встроенных вместе), и он работает довольно медленно из коробки. Вы должны отключить, что вы не используете, если вы обнаружите производительность неприемлемой.

0
ответ дан 1 December 2019 в 08:16
поделиться

Что-то вроде этого?

public int ReverseInt(int num)
{
    int result=0;
    while (num>0) 
    {
       result = result*10 + num%10;
       num /= 10;
    }
    return result;
}

Как взломанный одноклассник (Обновление: Бенжаминский комментарий, чтобы сократить его):

num.ToString().Reverse().Aggregate(0, (b, x) => 10 * b + x - '0');

aideier One-A-A-quare-lister:

public static int ReverseOneLiner(int num)
{
    for (int result=0;; result = result * 10 + num % 10, num /= 10) if(num==0) return result;
    return 42;
}

Это не одноклассник, потому что я должен был включить return 42; . Компилятор C # не позволит мне компилировать, потому что подумал, что код кода не вернул значение.

P.S. Если вы пишете код, как это, и сотрудник ловит его, вы заслуживаете всего, что он / она делает с тобой. Имейте в виду!

Редактировать: Я задавался вопросом о том, насколько медленнее Linq one-liner, поэтому я использовал следующий тестовый код:

public static void Bench(Func<int,int> myFunc, int repeat)
{
    var R = new System.Random();
    var sw = System.Diagnostics.Stopwatch.StartNew();
    for (int i = 0; i < repeat; i++)
    {
        var ignore = myFunc(R.Next());
    }
    sw.Stop();
    Console.WriteLine("Operation took {0}ms", sw.ElapsedMilliseconds);
}

Результат (10 ^ 6 случайных чисел в положительном диапазоне INT32):

While loop version:
Operation took 279ms

Linq aggregate:
Operation took 984ms
-121--2873035-

Не уверен, что плагины ваша проблема, но вот две вещи, которые помогли мне в прошлом:

Во-первых, я предлагаю вам скрипку с XMX и XMS Параметры для затмения. Отдавая затмение максимальная память, которую она может много помогать. Я установил XMX XMX до 1024 м, но он может идти выше (у него есть шапка, но я не могу вспомнить, что это такое). Другой параметр, чтобы посмотреть на IS Launcher.xxmaxPermsize .

Во-вторых, и я не уверен, что это относится к вам - но стоит упомянуть, потому что это так глупо, это может быть упущено из виду. У меня было мое рабочее пространство Eclipse в моем домашнем каталоге на некоторое время - который был сохранен на сервере в следующей комнате. Когда я переместил его в локальный каталог на моей машине, время отклика было намного быстрее. Может быть, вы пропустите что-то вроде этого.

5
ответ дан 1 December 2019 в 08:16
поделиться

Во время запуска Eclipse загружает модули и плагины, так что это правда. Также используя слишком много плагинов, увеличит необходимость RAM IDE. Это может быть причиной.

Существует функция ранний стартап функция , которая позволяет плагину загружать после начала Workbench:

Описание: эта точка расширения используется для регистрации плагинов, которые хотят быть активированным при запуске. Класс, приведенный в качестве атрибута на элементе Startup, должен реализовать интерфейс org.eclipse.ui.istartup. После того, как Workbench начнется, метод раннего стандарта () будет вызван из отдельного потока.
...
Обратите внимание, что эта форма устарена и больше не должен использоваться. Его Функционирование зависит от доступности принадлежащий org.eclipse.core.runtime.comПатериальность плагин и org.eclipse.core.runtime.compativity. Регистрация фрагмент. Плагины, которые обеспечивают Расширение к этой удлиненной точке Перечислены на рабочих настройках и пользователь может отключить любой плагин от раннего запуска.

Ссылка: http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/extionsion-points/org_eclipse_ui_startup.html

1
ответ дан 1 December 2019 в 08:16
поделиться