Вопрос по scala, heap-memory, java, jvm – Не хватает места в куче

19

У меня проблема с кучей пространства. Моя программа проста. Есть два актера (отправить и получить) «отправить» субъект передает 10000 объектов в секунду для «получения», а прием публикует эти объекты. полученный объект-получатель сохраняется в контейнере, но контейнер очищается каждую секунду. Так что нет никаких шансов, что в контейнере не осталось места. Теперь после 420000 объектов моя ошибка затмения говорит об ошибке & quot;ioconsole updater has encountered problem" , И когда я вхожу в детали, я вижу ошибкуInternal error :: Java heap space

Я попытался увеличить размер кучи. Размер моей кучи - 8096 м, а maxpermsize - 4096

Я отслеживаю свой код с помощью visualVm и замечаю, что он не превышает размер кучи. Абсолютно пусто, как решить проблему.

Может кто-нибудь сообщить мне, какие другие возможные сценарии могут привести к таким ошибкам.

Ваш Ответ

4   ответа
41

а не ваша программа. Вы много печатаете в System.out? Под окном & gt; Поиск предпочтений для "консоли". Установите какой-то предел для всех консольных буферов. Попробуйте напечатать меньший вывод из программы. Возможно войти в файл вместо этого.

Да, я не смог найти строки printf, потому что это было сделано файлом lagback.xml. При изменении статуса в этом файле количество строк журнала уменьшилось, а ошибка уменьшилась. Большое спасибо.. Rags
снимите флажок «Консоль с фиксированной шириной» решил мой ...
4

Решение :

Щелкните правой кнопкой мыши консоль - & gt; предпочтения

ограничить консоль.

5

чтобы дать вам представление об использовании памяти и о том, что делает GC:

-Xloggc:/tmp/gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps
0

изменив настройки кучи и буфера в eclipse. Однако я не смог ее решить. Затем я заметил, что в моей программе есть утечка памяти и количество потоков увеличивается со временем. Проблема была решена после того, как я исправил ошибку. Я думаю, что утечка памяти не самая вероятная причина для этого, но это следует учитывать.

Похожие вопросы