java.lang. OutOfMemoryError: пространство "кучи" Java

Чтобы подробно остановиться на более ранних ответах, начиная с, константы являются действительно просто нижними индексами, Вы можете также , называют их непосредственно:

use Foo;
print Foo::BAR;
16
задан 6 October 2009 в 01:46
поделиться

4 ответа

Вы можете настроить размер кучи JVM, используя параметры JVM -Xmx и -Xms : -Xmx для максимального размера кучи и -Xms для начального размера кучи. Например:

java -Xms128m -Xmx256m BigApp

Обычно я использую одни и те же настройки для начального и максимального размера кучи.

В вашем случае действительно сложно сказать, как изменить размер JVM, не имея дополнительной информации о том, что вы делаете, когда возникает проблема ... Или, может быть, у вас просто где-то утечка памяти, и увеличение размера кучи не поможет, это просто вызовет проблему позже. В этом случае единственный выход - устранить течь.

И последнее, что немаловажно: всегда помните, что чем больше куча, тем длиннее основной сборщик мусора .

9
ответ дан 30 November 2019 в 15:51
поделиться

Увеличение размера дампа кучи может быть только лейкопластырем . Вам необходимо создать дамп кучи, добавив правильный аргумент:

java -XX:+HeapDumpOnOutOfMemoryError -mn256m -mx512

Это создаст файл, похожий на java _ *. Hprof. Затем вы можете использовать набор инструментов с открытым исходным кодом для анализа дампа кучи. Java 1.6 поставляется с JHat, который содержит ошибки и плохо анализирует большие кучи. Я использую этот замечательный плагин Eclipse: Eclipse Memory Analyzer .

После создания отчета из дампа кучи

3
ответ дан 30 November 2019 в 15:51
поделиться

вы можете установить для максимальной кучи больший размер в командной строке:

java -Xmx512m MyClass
2
ответ дан 30 November 2019 в 15:51
поделиться

Либо у вас утечка памяти, и вам нужно выяснить, почему или вам нужно предоставить Java больше места в куче:

java -Xmx512m ...
1
ответ дан 30 November 2019 в 15:51
поделиться
Другие вопросы по тегам:

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