Чтобы подробно остановиться на более ранних ответах, начиная с, константы являются действительно просто нижними индексами, Вы можете также , называют их непосредственно:
use Foo;
print Foo::BAR;
Вы можете настроить размер кучи JVM, используя параметры JVM -Xmx
и -Xms
: -Xmx
для максимального размера кучи и -Xms
для начального размера кучи. Например:
java -Xms128m -Xmx256m BigApp
Обычно я использую одни и те же настройки для начального и максимального размера кучи.
В вашем случае действительно сложно сказать, как изменить размер JVM, не имея дополнительной информации о том, что вы делаете, когда возникает проблема ... Или, может быть, у вас просто где-то утечка памяти, и увеличение размера кучи не поможет, это просто вызовет проблему позже. В этом случае единственный выход - устранить течь.
И последнее, что немаловажно: всегда помните, что чем больше куча, тем длиннее основной сборщик мусора .
Увеличение размера дампа кучи может быть только лейкопластырем . Вам необходимо создать дамп кучи, добавив правильный аргумент:
java -XX:+HeapDumpOnOutOfMemoryError -mn256m -mx512
Это создаст файл, похожий на java _ *. Hprof. Затем вы можете использовать набор инструментов с открытым исходным кодом для анализа дампа кучи. Java 1.6 поставляется с JHat, который содержит ошибки и плохо анализирует большие кучи. Я использую этот замечательный плагин Eclipse: Eclipse Memory Analyzer .
После создания отчета из дампа кучи
вы можете установить для максимальной кучи больший размер в командной строке:
java -Xmx512m MyClass
Либо у вас утечка памяти, и вам нужно выяснить, почему или вам нужно предоставить Java больше места в куче:
java -Xmx512m ...