java.lang.outofmemoryError: проблема с пространством кучи Java - PullRequest
0 голосов
/ 03 августа 2010

Мне нужно создать программу RMI, когда я запустил эту программу, она запустится всего через несколько минут, а затем покажет проблему «java.lang.outofmemoryError: пространство кучи Java».Я должен использовать Windows 7 с 1,5 ГБ оперативной памяти и JDK1.6

Спасибо,

Ответы [ 4 ]

1 голос
/ 03 августа 2010

пахнет утечкой памяти.Хотя Java выполняет сборку мусора, вам все равно нужно убедиться, что вы не держитесь (сильная ссылка) на объекты, которые вам больше не нужны.Например, если вы не отмените регистрацию обработчиков событий (а шаблонный код обработчика событий содержит строгую ссылку на обработчики), эти обработчики никогда не будут собраны, что приведет к утечке памяти.

Не зная больше о вашей программе, мы можем просто догадаться здесь.

0 голосов
/ 03 августа 2010

Это может быть одна из нескольких вещей.

  • Возможно, у вас утечка памяти. В среде сбора мусора это означает, что вы держитесь за память, которая вам больше не нужна. Использование профилировщика (Yourkit или чего-либо другого) для профилирования памяти поможет определить, за что и за что держитесь.
  • В зависимости от вашей версии jvm, выделение кучи по умолчанию может быть не таким уж большим. Возможно, хотя это и не так для приложения rmi, что у вас законно заканчивается память. Используйте ключ -Xms, чтобы увеличить начальный размер кучи, и -Xmx, чтобы ограничить максимальный размер кучи. например
    java -Xms128m -Xmx512m ...
0 голосов
/ 03 августа 2010

Утечка памяти. Используйте jvisualvm в jdk, чтобы узнать почему.

0 голосов
/ 03 августа 2010

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

Вы можете прочитать это руководство по настройке

...