Eclipse 3.5.1 использует много памяти - PullRequest
3 голосов
/ 18 декабря 2009

Я перешел на Eclipse 3.5.1 и заметил, что при чистой сборке он занимает 560 МБ. И память не собирается после использования. Так и остается.

Есть ли какое-нибудь решение для этого?

JVM: jdk1.6.0_17 Windows XP, 2 ГМ ОЗУ

Ниже мой eclipse.ini

-showlocation
-showsplash
org.eclipse.platform
--launcher.XXMaxPermSize
384m
-startup
plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519
-vm
C:/Program Files/Java/jre6/bin/client/jvm.dll
-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms128m
-Xmx384m
-Xss4m
-XX:PermSize=128m
-XX:MaxPermSize=384m
-XX:CompileThreshold=5
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
-Dcom.sun.management.jmxremote
-Dorg.eclipse.equinox.p2.reconciler.dropins.directory=C:/jaydeep/Ericsson/eclipse_galileo/eclipse/dropins

Jaydeep. * +1010 *

Ответы [ 6 ]

5 голосов
/ 18 декабря 2009

Я потратил много времени на рассмотрение проблем памяти, связанных с Eclipse, особенно в Eclipse 3.2 и печально известной проблемы PermGen.

Несколько вещей, которые могут изменить ситуацию:

1) Удалите объем памяти, используемый для начального размера кучи: -Xms40m вместо -Xms128m. 2) Не устанавливайте минимальный размер PermGen: удалить -XX: PermSize = 128 м

1 & 2 уменьшит начальный объем необходимого вам пространства.

3) Не запускайте справочную систему - загрузка подключаемых модулей документации занимает много памяти, которая никогда не удаляется. 4) Используйте страницу Preferences / General / Startup and Shutdown, чтобы отменить выбор плагинов, которые вам не нужны при запуске Eclipse.

3 & 4 предотвратит слишком раннее использование памяти.

5) Если вам не нужны максимальные значения PermGen и Max Heap, рассмотрите возможность установки их ниже до тех пор, пока не возникнет ошибка / сбой, отражающий любой из них. Завершение работы PermGen обычно приводит к сбою JVM и выводу файла журнала в папку конфигурации, а ошибки кучи будут сообщаться в обычный файл .log.

Обращаясь к ним, вы, вероятно, по-прежнему будете видеть, как память Windows со временем растет без освобождения, хотя JVM может не использовать все, что у нее есть, в любой момент времени. Диспетчер задач показывает, сколько JVM имеет в своем распоряжении, в то время как память Java обычно может контролироваться через jconsole (распространяется с JDK) и обычно будет меньше.

Надеюсь, это поможет.

3 голосов
/ 18 декабря 2009

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

1 голос
/ 18 декабря 2009

AFAIK виртуальная машина Java не откажется от своего зарезервированного размера кучи после ее увеличения. Я вижу в ваших параметрах, ваш PermSize может иметь размер 384 МБ, а размер кучи - до 384 МБ, что означает, что ваша виртуальная машина может расти до 768 МБ - и оставаться там (я не уверен на 100%, если пространство стека будет добавлено на это тоже).

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

Если вы беспокоитесь о «утечках памяти», вы можете точно определить, сколько места используется различными кучами внутренней памяти, с помощью «jstat».

0 голосов
/ 30 мая 2012

Согласно моим экспериментам, все параметры vmargs, установленные в ini, воспроизводятся только один раз - при создании нового рабочего пространства. Если вы хотите изменить параметры в существующей рабочей области, используйте конфигурацию запуска / отладки. vmargs в ini больше не будут читаться.

0 голосов
/ 18 декабря 2009

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

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

Один из моих текущих проектов потребляет больше 1,6 ГБ во время сборки. Это просто то, с чем нам пришлось жить, правда ...

0 голосов
/ 18 декабря 2009

Это не похоже на чрезмерное количество памяти. Насколько велик проект, который вы строите?

Кроме того, память может быть освобождена в JVM (т. Е. Она будет доступна для других процессов Java), но она не будет возвращена ОС до тех пор, пока JVM (Eclipse) не отключится.

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