Я получаю java.lang.OutOfMemoryError в одном из моих приложений java. Я увеличил размер минимального и максимального размера кучи под «VM аргументами» в затмении:Другие причины для «OutOfMemoryError»?
-XX:+HeapDumpOnOutOfMemoryError -Xmx8g -Xms2g However, I'm still getting same error. In jconsole.exe it displays the following:
Если я правильно понял, то я до сих пор есть много памяти кучи.
Я также проанализировал дамп памяти, используя затмение MAT
Как вы можете видеть, это показывает проблему, но только 9 МБ. Так в чем же проблема? не должен ли я иметь достаточно свободной памяти кучи?
Похоже, что у вашей проблемы нет памяти, но [утечки памяти] (https://en.wikipedia.org/wiki/Memory_leak). Независимо от того, сколько памяти вы назначили, он в конечном итоге бросит OOM. – m0skit0
Не могли бы вы указать свою версию/платформу java и поместить полное сообщение об исключении? Это может быть ошибка пермгета, если <= 1.7, ... – pdem
@pdem У меня 1,8 64 бит. Полное сообщение «java.lang.OutOfMemoryError: Java heap space», затем он печатает трассировку стека. Как упоминалось в m0skit0 и JensB, это связано с утечкой памяти, которая должна быть исправлена, и увеличение памяти кучи не решит проблему –