Как будто вы пытаетесь получить доступ к объекту, который является null
. Рассмотрим ниже пример:
TypeA objA;
. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException
, что имеет смысл.
См. Также этот пример:
String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
Я не знаю о Eclipse а именно, я использую IntelliJ, который также переносит из памяти рост (используете ли Вы активно его или нет!). Так или иначе, в IntelliJ, я не мог устранить проблему, но я действительно замедлял рост памяти путем игры с опциями VM во время выполнения. Вы могли попытаться сбросить их в Eclipse и видеть, имеют ли они значение.
можно отредактировать опции VM в файле eclipse.ini в папке затмения.
я нашел, что (в IntelliJ) настройки сборщика "мусора" имели большую часть эффекта на то, как быстро память растет.
Мои настройки:
-Xms128m
-Xmx512m
-XX:MaxPermSize=120m
-XX:MaxGCPauseMillis=10
-XX:MaxHeapFreeRatio=70
-XX:+UseConcMarkSweepGC
-XX:+CMSIncrementalMode
-XX:+CMSIncrementalPacing
(См. http://piotrga.wordpress.com/2006/12/12/intellij-and-garbage-collection/ для объяснения отдельных настроек). Как Вы видите, я более обеспокоен предотвращением длинных пауз во время редактирования, чем actuial использование памяти, но Вы могли использовать это в качестве запуска.
Я обычно даю Eclipse 512 МБ RAM (использующий-Xmx опцию JVM), и у меня нет проблем памяти с Ganymede. Я обновил до двух ГБ RAM несколько месяцев назад, и я могу действительно рекомендовать его. Это имеет огромное значение.
Ну, Вы не определяете, на которой платформе это происходит. Управление памятью может варьироваться при использовании Windows XP, Vista, Linux, OS X...
Обычно, на моем компьютере (WinXP с 1 ГБ Ram), Eclipse редко берет больше чем 200 МБ, depengin размера открытых проектов, загруженных плагинов и продолжающегося действия.
RAM является относительно дешевой (не, что это - оправдание за плохую память managmentment). Неиспользованная память является по существу ПОТРАЧЕННОЙ ВПУСТУЮ памятью. Если Вы поражаете пределы, и IDE является проблемой, рассматривают меньше многозадачности, корректируя Вашу память reqs, или покупают больше. Я не нанес бы вред Eclipse, если это - Ваш повседневный IDE.
Вместо того, чтобы жаловаться на то, сколько память Eclipse берет, просто идите вперед и проанализируйте, где проблема. Я мог бы быть всего одним плагином.
Проверка блог здесь: "потребление памяти анализа затмения"
С уважением, Markus
Eclipse является симпатичным чрезмерно увеличенным в размерах IDE. Можно минимизировать его путем превращения автоматического здания проекта в соответствии с Проектом-> Сборка Автоматически. Этому также можно помочь путем закрытия любого открытого проекта, Вы в настоящее время не продолжаете работать.
Eclipse отдельно довольно чрезмерно увеличен в размере, и больше плагинов, которые Вы добавляете только, усиливает ситуацию. Это - все еще мой любимый IDE, поскольку это, конечно, не коротко на функциональности, но если бы Вы ищете легкий IDE тогда, я предложил бы угробить Eclipse; довольно нормально увеличить половину концерта памяти при отъезде его работающий некоторое время.
Плагины EE Ganymede Java абсолютно огромны при выполнении в памяти. Кроме того, у меня были неудачные опыты с FindBugs и его надежностью по долгой сессии кодирования.
, Если Вы не можете жить без этих плагинов, хотя, тогда Ваше единственное обращение за помощью должно запустить заключительные проекты. При ограничении количества открытый проекты в рабочей области компилятор (и FindBugs) будет иметь меньше для волнения о, и использование памяти отбросит чрезвычайно.
я обычно разделял свои рабочие области клиентом, и затем только сохраните проекты абсолютного минимума открытыми в каждой рабочей области. Обратите внимание что, если у Вас есть особенно крупные проекты (особенно с большим количеством файлов проверили WST), который будет не только жевать через Вашу память, но также и вызывать значимую паузу в скорости отклика при компиляции.
Только для получения информации,
можно добавить
-Dcom.sun.management.jmxremote
в файл eclise.ini, затмение запуска и затем контролировать его использование памяти через 'jconsole.exe', найденный в jdk установке.
C:\[jdk1.6.0_0x path]\bin\jconsole.exe
Выбирают 'Соединение / Новое соединение / 'затмение' для контроля памяти, используемой затмением
Я не думаю, что JVM делает большую сборку "мусора", если это не имеет к (т.е. это добирается до своих пределов). Поэтому это захватывает всю память, которую это может получить, вероятно, до предельного набора в eclipse.ini (-Xmx аргумент, установить на 512 МиБ здесь).
можно получить визуальное представление текущего состояния "кучи" путем проверки 'Предпочтений'-> 'Общий'-> 'Выставочное состояние "кучи"'. Это создаст маленький индикатор в строке состояния, которая также имеет кнопку 'корзины', которую можно использовать для инициирования ручной сборки "мусора".
Я назвал бы чрезмерно увеличенным в размере, но не текучий. (Если бы это было текучим, то это поднялось бы и поднялось бы, пока что-то не отказало.) Как другие сказали, память дешева! Это походит на простое решение мне: потратьте крошечный бит на большую память по сравнению с, теряют производительность, потому что у Вас нет бюджета памяти для выполнения Eclipse 500 МБ.
Итоговый риторический вопрос: , Что более ценно:
Eclipse обычно хранит в памяти множество метаданных, что позволяет выполнять все виды гимнастики IDE.
Я обнаружил, что конфигурация Eclipse по умолчанию хорошо работает для большинства целей и включает ограничение (явно или неявно заданное JVM) на то, сколько памяти может быть использовано, и Eclipse останется в пределах этого.
Есть ли какая-то конкретная причина, по которой вы беспокоитесь об использовании памяти?